防止重复安装包,或在 R 中预安装包

Preventing repeated package installation, or pre installing packages in R

我有一个使用 rpy2 从 python 调用的 R 脚本。它使用 dplyr、doBy 和 ggplot2。该脚本具有针对这 3 个包的 install.packages 命令。即使已经安装了软件包,它仍然会下载、构建和安装它们,这非常耗时。有没有办法让它只在软件包尚未安装的情况下进行安装?

此外,我 运行 在 docker 容器中,因此在实例化容器后,第一次脚本 运行s 时包不存在。有没有办法预加载包,在这种情况下我不需要这些包的 install.packages 命令,我的上述问题将变得没有实际意义。

install.packages( setdiff(required_packages, installed.packages()[,"Package"]) )  

如果您将required_packages定义为您需要的软件包名称的字符向量,则该行将只安装您当前没有的软件包。

所以对于你的情况:

required_packages <- c("dplyr", "doBy", "ggplot2")
install.packages( setdiff(required_packages, installed.packages()[,"Package"]) )  

我总是使用:

if (!require(package)) install.packages("package")

因此,如果该包在库中不可用,则会安装它。