¿Una forma elegante de comprobar si faltan paquetes e instalarlos?
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?
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.
Dason K. y yo tenemos el paquete Pacman que puede hacer esto muy bien. La función p_load
en 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)