我有一个玩具R脚本(test.R),如下所示:
myString <- "Hello World"
browser()
print(myString)
我想交互式地调试脚本,因此调用了“browser()
”。
但是,当我像这样运行脚本时:
Rscript test.R
我只看到:
Called from: top level
[1] "Hello World"
即“browser()”调用似乎被跳过了。当我像这样运行脚本时:
R -f test.R
我明白了:
>
> myString <- "Hello World"
> browser()
Called from: top level
Browse[1]> print (myString)
[1] "Hello World"
Browse[1]>
>
但是,执行不会停止在'Browse1>‘,以允许我调试。
这里我漏掉了什么?在python中,我可以插入"import pdb; pdb.set_trace()
“进行调试。我正在寻找R中类似的东西。
发布于 2021-09-28 22:12:54
了解如何使用browser()
的See this。您将能够在终端上的R交互环境中source('scriptname.R')
一个脚本(通过运行R
而不是Rscript scriptname.R
),然后browser()
的行为将非常类似于import pdb; pdb.set_trace()
。一个主要的警告是参数-您可以手动配置它来使用您将通过if(interactive())
在命令行上提供的参数(或者可能有其他方法来实现此目的)。
https://stackoverflow.com/questions/48553185
复制相似问题