我正在使用RStudio,我希望能够在特定的行停止代码执行.
这些函数在第一个脚本文件中定义,并从第二个脚本文件调用.
我使用第一个文件到第二个文件 source("C:/R/script1.R")
我使用从头到尾的运行:我从第二个脚本开始运行,该脚本具有函数调用,并在第一个脚本中突出显示了函数定义所在的行.
然后我browser()用来查看变量.然而,这并不理想,因为涉及一些大的矩阵.有没有办法让这些变量出现在RStudio的工作区中?
此外,当我从一行到另一行重新使用run时,它只运行到被调用的第一个脚本文件的末尾,它不会返回到调用函数并完成第二个文件的运行.
我怎样才能在RStudio中实现这些目标?
好的,这是一个简单的例子,下面的函数加法器在一个脚本中定义
adder<-function(a,b) {
browser()
return(a+b)
}
Run Code Online (Sandbox Code Playgroud)
我打电话来自第二个剧本
x=adder(3,4)
Run Code Online (Sandbox Code Playgroud)
在第二个脚本中调用adder时,在第一个脚本中启动browser().从这里我可以使用get("a")来获取a的值,但是a和b的值不会出现在RStudio的工作区中?
在这里的例子中它并不重要,但是当你有几个大矩阵时它确实如此.
如果您分配数据,.GlobalEnv它将显示在 RStudio 的“工作区”选项卡中。
> adder(3, 4)
Called from: adder(3, 4)
Browse[1]> a
[1] 3
Browse[1]> b
[1] 4
Browse[1]> assign('a', a, pos=.GlobalEnv)
Browse[1]> assign('b', b, pos=.GlobalEnv)
Browse[1]> c
[1] 7
> a
[1] 3
> b
[1] 4
Run Code Online (Sandbox Code Playgroud)