我有几个RStudio项目,我已经设置自动执行诸如评分多项选择测试之类的任务。执行任务所需的功能只保存在文本文件中,并确保我或其他用户可以使用.Rprofile
文件来运行source("MyFunctions.R")
之类的文件。在启动时。如果.Rprofile
文件位于RStudio项目的基本目录中,则在打开项目时会自动运行该文件
但是,我遇到了偶然的错误,其中基本R包提供的功能在脚本来源之前没有加载,像read.csv
或installed.packages
这样的函数,例如:
Error in eval(expr, envir, enclos) :
could not find function "installed.packages"
是否有某种方法可以在运行source()
之前等待默认包加载,而不是为所有无法加载的默认包添加显式library()
调用?
答案 0 :(得分:6)
这来自?Startup
似乎非常明确:
请注意,仅提供站点和用户配置文件时 加载'base'包,因此其他包中的对象需要 例如, 'utils :: dump.frames'或明确后 加载相关的包。
根据明确的建议,使用library()
加载必要的包看起来是您最好的选择。
答案 1 :(得分:1)
在Josh的回答中指向?Startup
文档时,看起来在.First.sys()
顶部添加.Rprofile
调用可能是一个选项,因为这似乎是函数处理所有默认包的加载。它通常在.Rprofile
之后运行,这可以解释我得到的错误。