【问题标题】:Make sure all default packages are loaded before running .Rprofile确保在运行 .Rprofile 之前加载所有默认包
【发布时间】:2012-11-28 00:30:53
【问题描述】:

我已经设置了几个 RStudio 项目来自动执行多项任务,例如为多项选择测试评分。完成任务所需的功能只是保存在一个文本文件中,并确保它们可供我或其他用户使用,我一直在使用.Rprofile 文件,该文件在启动时运行类似于source("MyFunctions.R") 的东西。如果 .Rprofile 文件位于 RStudio 项目的基本目录中,则在打开项目时会自动运行它

但是,我偶尔会遇到错误,即在获取脚本之前未加载基本 R 包提供的函数,例如 read.csvinstalled.packages 之类的函数,例如:

Error in eval(expr, envir, enclos) : 
  could not find function "installed.packages"

有没有办法在source() 运行之前等待默认包加载,而不是为所有无法加载的默认包添加显式library() 调用?

【问题讨论】:

    标签: r rstudio


    【解决方案1】:

    这来自?Startup 似乎非常明确:

    请注意,当站点和用户配置文件仅作为来源时 'base' 包已加载,因此 其他包中的对象需要 被称为例如'utils::dump.frames' 或明确之后 加载相关包

    根据该明确建议,使用library() 加载必要的包看起来是您的最佳选择。

    【讨论】:

    • 谢谢,看来我应该重新考虑使用.Rprofile 处理这些事情。我一直认为它是一种快速便捷的自动加载函数和运行脚本的方法,但它看起来并不像那样工作。
    • 如果你还没有看过,你可能对这个 SO [r]-tag 经典感兴趣:stackoverflow.com/questions/1189759/…
    【解决方案2】:

    乔希的回答指出了?Startup 文档,看起来在.Rprofile 顶部添加.First.sys() 调用可能是一种选择,因为这似乎是处理所有默认包。它通常在.Rprofile 之后运行,这可以解释我遇到的错误。

    【讨论】:

      猜你喜欢
      • 2019-05-02
      • 1970-01-01
      • 2015-08-07
      • 2013-01-24
      • 2016-04-04
      • 2012-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多