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

Loading multiple R packages with a single command

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

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

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

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

这是行不通的。想知道这是如何实现的吗?

p_load 函数中使用参数 char

char: Character vector containing packages to load

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

TRUE

上设置 character.only
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. If TRUE then p_load will only accept a single input which is a character vector containing the names of packages to load."

或者,do.call(p_load, packages)

你也可以在没有 Pacman 的情况下执行此操作:

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

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