检查R中已安装的软件包

sin*_*sse 7 r r-package

根据这个问题的答案:优雅的方法来检查丢失的包并安装它们?

我正在使用以下代码来确保在升级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.packagesutils包中,它通常是默认包之一.因此,它在当时不可用.First.

也许尝试更换installed.packagesutils::installed.packages

正如Josh所说,我的眼睛掠过直接解决这个问题的那一块,即:

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