【问题标题】:Sourcing an .R file leading to Error in eval(ei, envir):获取导致 eval(ei, envir) 错误的 .R 文件:
【发布时间】:2020-04-16 19:44:19
【问题描述】:

我在获取 .R 文件时遇到问题,这会导致 eval(ei, envir): 中的错误。当我在 RStudio 中手动运行它而不采购它时,整个代码就像往常一样工作。

【问题讨论】:

  • 你是否在这个脚本中使用了非 ASC 符号,当我尝试使用葡萄牙语特殊字符时,R 真的会出错
  • 我不认为我是。有什么办法可以查到吗?
  • 您的 RStudio 工作区中可能有一些您没有意识到您的脚本所依赖的东西。清除您的 Rstudio 工作区并查看是否可以获取脚本。
  • @SmokeyShakers 我想我不清楚。当我尝试在终端或新的 RStudio 会话中获取我的 .R 文件时,代码不起作用。但是,当我在新的 RStudio 会话中单独执行脚本的每一行时,一切正常,没有此错误。
  • 明白了。很难在没有看到脚本的情况下提供帮助。您可以尝试options(error=recover) 来查看问题出现在脚本中的确切位置。

标签: r


【解决方案1】:

本地 = T 如果您有一个脚本toSource.R,则在您的链接中阐述答案,其中包含以下内容:

print(x)

然后在另一个脚本中,这样的事情不会起作用,因为脚本 toSource.R 将在全局环境中评估,而不是在 PrintX 的内部环境中:

printX <- function() {
  x <- 2
  source('toSource.R')
}
## yields "Error in print(x) : object 'x' not found "
printX()

这将起作用,因为 x 现在在全球环境中:

x <- 2
printX()

这也将起作用,因为现在指示源使用调用环境,这是PrintX 的内部环境:

printX <- function() {
  x <- 2
  source('toSource.R', local =T)
}

printX()

【讨论】:

    猜你喜欢
    • 2020-11-06
    • 1970-01-01
    • 2013-08-08
    • 2021-10-01
    • 1970-01-01
    • 2012-11-19
    • 2023-03-29
    • 2017-09-27
    • 2015-05-18
    相关资源
    最近更新 更多