7

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

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

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

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

4

2 回答 2

7

?Startup似乎非常确定:

请注意,当站点和用户配置文件获取源时,仅加载“基本”包,因此其他包中的对象需要通过例如“utils::dump.frames”或在显式加载相关包后引用

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

于 2012-11-28T00:42:29.693 回答
2

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

于 2012-11-28T00:59:25.553 回答