在R中自动安装新包

时间:2016-11-04 10:40:18

标签: r packages

我已经为我已安装的软件包编写了一个函数。 在其中我只想写一个声明,一旦我们调用它,需要自动安装一个新的包。我想使用下面的函数安装ROCR包。

libraries <- function()

list.of.packages <- c("caTools", "caret", "glmnet","rpart","rpart.plot","randomForest","rattle",
                   "e1071")
new.packs<- if(list.of.packages[!list.of.packages %in% installed.packages() [,"Package"])]{
install.packages("new.packs")
library(new.packs)
}else {
print("All packages installed")

} }

2 个答案:

答案 0 :(得分:3)

library pacman为你做这件事。

e.g。

pacman::p_load(data.table, lubridate)

加载库并在它们不可用时安装它们。

答案 1 :(得分:1)

这种一般方法怎么样:

if(!"caret" %in% installed.packages()) install.packages("caret")

可以根据您的需要进行调整,例如获取尚未安装的包的向量,然后将其传递给install.packages

list.of.packages <- c("caTools", "caret", "glmnet","rpart","rpart.plot","randomForest","rattle",
                      "e1071")

if(length(which(!list.of.packages %in% installed.packages()))){
  install.packages(list.of.packages[!list.of.packages %in% installed.packages()])
}