【发布时间】:2012-09-20 15:43:48
【问题描述】:
我正在使用 RStudio,我希望能够在特定行停止代码执行。
函数在第一个脚本文件中定义并从第二个脚本文件中调用。
我使用source("C:/R/script1.R")将第一个文件导入第二个文件
我使用从头到行运行:从第二个脚本开始运行,该脚本具有函数调用,并在第一个脚本中突出显示了函数定义所在的行。
然后我使用browser() 查看变量。然而,这并不理想,因为涉及到一些大型矩阵。有没有办法让这些变量出现在 RStudio 的工作区中?
此外,当我使用 run from line to end 重新启动时,它只会运行到被调用的第一个脚本文件的末尾,它不会返回调用函数并完成第二个文件的运行。
如何在 RStudio 中实现这些目标?
好的,这里是一个简单的例子,下面的函数加法器是在一个脚本中定义的
adder<-function(a,b) {
browser()
return(a+b)
}
我比调用来自第二个脚本
x=adder(3,4)
当在第二个脚本中调用 adder 时,在第一个脚本中启动 browser()。从这里我可以使用 get("a") 来获取 a 的值,但是 a 和 b 的值没有出现在 RStudio 的工作区中?
在此处的示例中,这并不重要,但是当您有几个大型矩阵时,它就可以了。
【问题讨论】:
-
是脚本2报错的问题吗?试试
options(error = recover)。 -
抱歉,不确定发生了什么,但我重新启动,现在它返回到调用函数。谢谢休
-
仍然想知道如何将正在浏览的函数中的变量()添加到 RStudios 工作区。
-
当您调用
browser时,您只是暂停执行您正在执行的操作。当前环境中的所有变量应自动显示在 RStudio 环境浏览器中。如果您想了解更多细节,请在您的问题中提供一个可重复的示例。 -
没有问题如何附加脚本文件?