library()函数无法加载多个包

时间:2017-09-30 05:21:18

标签: r

当我将janitor包与其他包一起包含时,它没有加载。

  

library(MASS,caret,stepPlr,janitor)

库中的错误(MASS,插入符号,stepPlr,janitor):object' janitor'找不到

当我仅使用janitor包分别运行该命令时,它被加载到会话中;没有错误

> library(janitor)
Warning message:
package ‘janitor’ was built under R version 3.3.3 

一次包含x个包裹是否有限制?或者我的RStudio有问题?

2 个答案:

答案 0 :(得分:2)

library()函数并不意味着加载多个库,更好的方法是创建一个包列表,并使用require()检查它们是否已安装,如果没有安装它们。见下面的例子:

requiredPackages <- c("MASS", "caret", "stepPlr", "janitor")


ipak <- function(pkg){
        new.pkg <- pkg[!(pkg %in% installed.packages()[, "Package"])]
        if (length(new.pkg))
                install.packages(new.pkg, dependencies = TRUE)
        sapply(pkg, require, character.only = TRUE)
}

ipak(requiredPackages)

答案 1 :(得分:2)

来自p_load软件包的函数pacman允许列出这样的多个软件包,并且如果还没有,则会安装它们:

library(pacman)
p_load(MASS, caret, stepPlr, janitor)

这不仅方便用户使用,而且还提高了在多个用户或环境中运行相同脚本的可重复性。