studio - superponer graficas en r
Cargue mĂșltiples paquetes a la vez (8)
El paquete pacman CRAN que mantengo (creado por Dason Kurkiewicz) puede lograr esto:
Entonces el usuario podría hacer:
## install.packages("pacman")
pacman::p_load(dplyr, psych, tm)
y si falta el paquete, p_load
lo descargará de CRAN o Bioconductor.
¿Cómo puedo cargar un montón de paquetes a la vez sin volver a escribir el comando require una y otra vez? Probé tres enfoques, todos los cuales fallan y se queman.
Básicamente, deseo suministrar un vector de nombres de paquetes a una función que los cargará.
x<-c("plyr", "psych", "tm")
require(x)
lapply(x, require)
do.call("require", x)
Esto debería funcionar:
lapply(x, FUN = function(X) {
do.call("require", list(X))
})
(La clave es que el argumento args
en do.call(what, args)
debe ser una lista --- ¡incluso si solo tiene un elemento único!)
Simplemente puede usar el paquete lubripack e instala cuidadosamente nuevos paquetes y luego los carga todos en una línea.
lubripack ("plyr", "psych", "tm")
Aquí está la salida después de ejecutar el código anterior en RStudio.
Cómo instalar el paquete:
Ejecute el código siguiente para descargar el paquete e instalarlo desde GitHub. No es necesario tener una cuenta de GitHub.
library(devtools)
install_github("espanta/lubripack")
Sobre la base de la solución de daroczig, si no desea especificar una lista como entrada, puede usar
# Foo
mLoad <- function(...) {
sapply(sapply(match.call(), as.character)[-1], require, character.only = TRUE)
}
# Example
mLoad(plyr, dplyr, data.table)
... que es más corto que
lapply(list(''plyr'', ''dplyr'', ''data.table''), require, character.only = TRUE)
Una opción alternativa proviene del paquete easypackages
. Una vez instalado, puede cargar paquetes de la manera más intuitiva:
libraries("plyr", "psych", "tm")
El paquete también incluye una función para instalar varios paquetes:
packages("plyr", "psych", "tm")
Referencia here .
Varias permutaciones de las funciones propuestas funcionan, pero solo si especifica que el argumento character.only
es TRUE
. Ejemplo rápido:
lapply(x, require, character.only = TRUE)
Yo uso la siguiente función:
mrip <- function(..., install = TRUE){
reqFun <- function(pack) {
if(!suppressWarnings(suppressMessages(require(pack, character.only = TRUE)))) {
message(paste0("unable to load package ", pack,
": attempting to download & then load"))
install.packages(pack)
require(pack, character.only = TRUE)
}
}
lapply(..., reqFun)
}
Esto intenta cargar, y si falla instala e intenta cargar nuevamente.
para alguien que quiere instalar y cargar paquetes simultáneamente encontré esta función en el siguiente enlace https://gist.github.com/stevenworthington/3178163
# ipak function: install and load multiple R packages.
# check to see if packages are installed. Install them if they are not, then load them into the R session.
ipak <- function(pkg){
new.pkg <- pkg[!(pkg %in% installed.packages()[, "Package"])]
if (length(new.pkg))
install.packages(new.pkg, dependencies = TRUE)
sapply(pkg, require, character.only = TRUE)
}
# usage
packages <- c("ggplot2", "plyr", "reshape2", "RColorBrewer", "scales", "grid")
ipak(packages)