根据这个问题的答案:优雅的方法来检查丢失的包并安装它们?
我正在使用以下代码来确保在升级R或安装其他用户时安装所有软件包:
list.of.packages <- c("RODBC", "reshape2", "plyr")
new.packages <- list.of.packages[!(list.of.packages %in% installed.packages()[,"Package"])]
if(length(new.packages)) install.packages(new.packages)
Run Code Online (Sandbox Code Playgroud)
我已将它放在我的.Rprofile中的myFirst函数中,但是当我启动R时它会出现以下错误并继续启动:
Error in match(x, table, nomatch = 0L) :
could not find function "installed.packages"
Run Code Online (Sandbox Code Playgroud)
如果我在得到提示后运行代码它可以正常工作.有什么想法吗?
谢谢!
jor*_*ran 11
从阅读中可以?Startup看出:
接下来,如果在搜索路径上找到函数.First,则执行.First().最后,运行基础包中的functionFirst.sys().此调用需要附加options("defaultPackages")指定的默认包.
现在,installed.packages在utils包中,它通常是默认包之一.因此,它在当时不可用.First.
也许尝试更换installed.packages用utils::installed.packages?
正如Josh所说,我的眼睛掠过直接解决这个问题的那一块,即:
请注意,当源站点和用户配置文件仅被加载时,基本包被加载,因此其他包中的对象需要通过例如utils :: dump.frames或在明确加载相关包之后引用.