4

R可以使用 package 中的 functionp_load函数通过pacman R以下命令加载多个包:

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

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

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

这是行不通的。想知道如何做到这一点?

4

3 回答 3

4

开启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:逻辑。如果为 TRUE,则 p_load 将仅接受单个输入,该输入是包含要加载的包名称的字符向量。”

于 2017-08-04T14:37:40.200 回答
4

或者,做do.call(p_load, packages).

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

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

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

于 2017-08-04T15:12:26.643 回答
1

charp_load函数中使用参数。

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

foo <- c("data.table", "ggplot2")
pacman::p_load(char = foo)
于 2017-08-04T14:37:38.827 回答