是否可以调试用Rscript.exe执行的R源文件?
> Rscript.exe mysource.R various parameters
理想情况下,我希望能够在RStudio的mysource.R文件中的某个位置设置断点。 例如,可以通过在源文件中添加一些调试指令来直接在命令行中输入R调试器吗?
也许从R采购文件可以工作吗?怎么样?如何传递命令行参数“ variable parameters”,以便commandArgs()返回正确的值?
mysource.R可能如下所示(实际上它要复杂得多)。
#!/usr/bin/Rscript
args <- commandArgs(trailingOnly=TRUE)
print(args)
答案 0 :(得分:0)
就从控制台进行调试而言,几乎没有与之相关的问题,没有答案。
Is there a way to debug an RScript call in RStudio?和Rscript debug using command line
因此,我不确定是否有所更改以及现在是否有可能。
但是,我们可以使用黑客手段从文件源中进行调试。您可以在文件中任何要调试的地方添加browser()
。将您的主文件视为:
main.R
args <- commandArgs(trailingOnly=TRUE)
browser()
print(args)
现在,我们可以覆盖commandArgs
函数,并传递我们想要传递的任何参数,当您获取文件时将传递这些参数。
calling_file.R
commandArgs <- function(...) list(7:9, letters[1:3])
source("main.R")
运行source
命令后,您可以从那里调试
Called from: eval(ei, envir)
#Browse[1]> args
#[[1]]
#[1] 7 8 9
#[[2]]
#[1] "a" "b" "c"