代码由两个文件组成:
caller.R
:
a <- 1
source("s1.R", encoding = "UTF-8")
b <- fa()
s1.R
:
fa <- function() {
a*2
}
当caller.R
在RStudio IDE中源代码(ctrl +Shift+S)时,此代码运行顺利,提供正确的预期结果b=2
。
然而,当caller.R
通过"Source as Local Job…"获取时,它会抛出一个错误(葡萄牙语),这意味着执行被中断,因为它无法找到对象'a':
Error in fa() : objeto 'a' n�o encontrado
Calls: sourceWithProgress -> eval -> eval -> fa
Execu��o interrompida
我已经尝试了所有可能的"源作为本地作业"选项组合("运行带有全局环境副本的作业,等等)没有成功。
我必须做什么才能运行调用者。还是当地的工作?
如果您想让它在相同的环境中可用,您可以尝试使用local = TRUE
source("s1.R", encoding = "UTF-8", local = TRUE)