确保在运行.Rprofile之前加载所有默认包

时间:2012-11-28 00:30:54

标签: r rstudio

我有几个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()调用?

2 个答案:

答案 0 :(得分:6)

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

  

请注意,仅提供站点和用户配置文件时   加载'base'包,因此其他包中的对象需要   例如, 'utils :: dump.frames'或明确后   加载相关的包

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

答案 1 :(得分:1)

在Josh的回答中指向?Startup文档时,看起来在.First.sys()顶部添加.Rprofile调用可能是一个选项,因为这似乎是函数处理所有默认包的加载。它通常在.Rprofile之后运行,这可以解释我得到的错误。