2017-08-04 4 views
1

R Plusieurs paquets peuvent être chargés en utilisant la fonction fonction p_load de pacmanR package avec la commande suivante:Chargement de plusieurs packages R avec une seule commande

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

Cependant, je veux utiliser la commande comme celui-ci

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

qui ne fonctionne pas. Je me demande comment cela peut être réalisé?

+0

Je considère que cela est une idée incroyablement mauvaise. Charger un paquet par ligne. pas un fan de 'Pacman :: p_load' soit, pour que ré un fils. Nous désapprouvons les gens qui déclarent plusieurs variables sur la même ligne. Nous devrions faire la même chose pour charger plusieurs paquets sur la même ligne, pour la même raison. –

Répondre

2

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

De ?p_load:

"character.only: logique. . Si TRUE, p_load acceptera une seule entrée qui est un vecteur de caractères contenant les noms des paquets à charger »

1

Utilisez l'argument char dans la fonction p_load.

Caractère: vecteur de caractères contenant les paquets pour charger

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

Vous pouvez également faire do.call(p_load, packages)

Vous pouvez aussi le faire sans Pacman.

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

Mais comme d'autres l'ont dit, pas recommandé car il réduit la clarté.