MYaseen208
MYaseen208

Reputation: 23938

Loading multiple R packages with a single command

Multiple R packages may be loaded using the function p_load function from pacman R package with the following command:

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

However, I want to use the command like this

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

which does not work. Wonder how this can be achieved?

Upvotes: 6

Views: 6217

Answers (3)

mikeck
mikeck

Reputation: 3788

Alternatively, do do.call(p_load, packages).

You can also do this without Pacman:

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

But as others have said, not recommended because it reduces clarity.

Upvotes: 4

loki
loki

Reputation: 10350

Set character.only on 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

From ?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."

Upvotes: 5

pogibas
pogibas

Reputation: 28379

Use argument char in p_load function.

char: Character vector containing packages to load

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

Upvotes: 1

Related Questions