2017-08-04 33 views
1

多个R封装可以使用函数p_load功能用下面的命令被装载从pacmanR包:载入多个R封装用单个命令

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

然而,我想使用的命令这样

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

哪些不起作用。不知道如何实现这一点?

+0

我认为这是一个惊人坏主意。每行装入一个包。不是'吃豆子:: p_load'风扇,你们还应该回覆一个儿子。我们对在同一行上声明多个变量的人表示不满。出于完全相同的原因,我们应该在同一行上加载几个软件包。 –

回答

2

设置character.onlyTRUE

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:合乎逻辑。如果真,那么p_load将只接受单一的输入是一个包加载的名称的字符向量”

1

p_load函数中使用参数char

炭:含有包字符向量加载

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

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

你也可以做到这一点没有吃豆子:

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

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