使用单个命令加载多个R包

时间:2017-08-04 14:34:00

标签: r packages pacman-package-manager

可以使用R p_load包中的函数pacman函数使用以下命令加载多个R包:

pacman::p_load("ggplot2", "lme4")

但是,我想使用像这样的命令

Packages <- c("ggplot2", "lme4")
pacman::p_load(Packages)

哪个不起作用。想知道如何实现这一目标?

3 个答案:

答案 0 :(得分:2)

character.only

上设置TRUE
Packages <- c("ggplot2", "lme4")
Packages %in% loadedNamespaces() # check if the packages are loaded
# [1] FALSE FALSE

pacman::p_load(Packages, character.only = TRUE)

Packages %in% loadedNamespaces()
# [1] TRUE TRUE

来自?p_load

  

character.only:logical。如果为TRUE,那么p_load只接受一个输入,这是一个包含要加载的包名称的字符向量。”

答案 1 :(得分:2)

或者,执行do.call(p_load, packages)

你也可以在没有Pacman的情况下做到这一点:

lapply(packages, require, character.only = TRUE)

但正如其他人所说,不推荐,因为它会降低清晰度。

答案 2 :(得分:1)

char函数中使用参数p_load

  

char:包含要加载的包的字符向量

foo <- c("data.table", "ggplot2")
pacman::p_load(char = foo)