逐行运行 R 脚本

机器算法验证 r
2022-03-05 09:48:37

我刚刚发现了如何在 Windows 下从 R 控制台运行 R 脚本。

source("arrrFile.R")

问题是,此命令“静默”运行。如何像在控制台中键入一样逐个命令运行文件?

2个回答

您可以使用 R 的内置调试器;它必须在函数上触发,因此需要一个小包装器:

sourceDebugging<-function(f){
 #Function to inject the code to
 theCode<-function(){}
 #Injection
 parse(text=c('{',readLines(f),'}'))->body(theCode)
 #Triggering debug
 debug(theCode)
 #Lift-off
 theCode()
}
sourceDebugging(<file with code>)

这对于调试非常方便(让您有机会在每行之后检查状态),但是,只会在新环境中评估theCode而不是source默认环境.GlobalEnv......这意味着例如,内部创建的变量将消失,除非明确全球化。

选项二只是模拟从键盘写入并按 ENTER ......但正如 caracal 指出的那样,这可以通过source(<file with code>,echo=TRUE).

打开 RGui 中的脚本文件,然后按Ctrl+R逐行运行(尽管您需要按多次;))。但是,我建议使用RStudio来方便地使用 R。在这种情况下,您可以通过Ctrl+Enter运行 line 。或者您可以将脚本修改为print()(或cat())对象。