¿Una forma elegante de comprobar si faltan paquetes e instalarlos?

Resuelto Maiasaura asked hace 54 años • 35 respuestas

Parece que estoy compartiendo mucho código con coautores estos días. Muchos de ellos son usuarios novatos/intermedios de R y no se dan cuenta de que tienen que instalar paquetes que aún no tienen.

¿Existe una forma elegante de llamar installed.packages(), compararla con las que estoy cargando e instalar si falta?

Maiasaura avatar Jan 01 '70 08:01 Maiasaura
Aceptado

Sí. Si tiene su lista de paquetes, compárela con el resultado installed.packages()[,"Package"]e instale los paquetes que faltan. Algo como esto:

list.of.packages <- c("ggplot2", "Rcpp")
new.packages <- list.of.packages[!(list.of.packages %in% installed.packages()[,"Package"])]
if(length(new.packages)) install.packages(new.packages)

De lo contrario:

Si coloca su código en un paquete y los convierte en dependencias, se instalarán automáticamente cuando instale su paquete.

Shane avatar Nov 03 '2010 18:11 Shane

Dason K. y yo tenemos el paquete Pacman que puede hacer esto muy bien. La función p_loaden el paquete hace esto. La primera línea es sólo para garantizar que Pacman esté instalado.

if (!require("pacman")) install.packages("pacman")
pacman::p_load(package1, package2, package_n)
Tyler Rinker avatar Nov 09 '2013 07:11 Tyler Rinker