Solo para completar, hay algunas formas de evitar que tenga este problema. Como dijo Dirk, guarde sus paquetes en otro directorio en su computadora.
install.packages("thepackage",lib="/path/to/directory/with/libraries")
Puede cambiar el valor predeterminado .Library
valor utilizando la función .libPaths
demasiado
.libPaths("/path/to/directory/with/libraries")
Esto pondrá esta ruta como primer valor en la .Library
variable y la convertirá en la predeterminada.
Si desea automatizar esto aún más, puede especificarlo en el archivo Rprofile.site, que encontrará en el directorio / etc / de su compilación R. Luego se cargará automáticamente cada vez que se cargue R, y ya no tendrá que preocuparse por eso. Simplemente puede instalar y cargar paquetes desde el directorio especificado.
Finalmente, tengo un pequeño código incluido en mi Rprofile.site que me permite reinstalar todos los paquetes cuando instalo una nueva versión de R. Solo tiene que enumerarlos antes de actualizar a la nueva versión R. Lo hago usando un archivo .RData que contiene una lista actualizada con todos los paquetes.
library(utils)
## Check necessary packages
load("G:\Setinfo\R\packagelist.RData") # includes a vector "pkgs"
installed <- pkgs %in% installed.packages()[, 'Package']
if (length(pkgs[!installed]) >=1){
install.packages(pkgs[!installed])
}
Hago el packagelist.RData especificando .Last()
en mi Rprofile.site. Esto actualiza la lista de paquetes si instalé algunos:
.Last <- function(){
pkgs <- installed.packages()[,1]
if (length(pkgs) > length(installed)){
save(pkgs,file="G:\Setinfo\R\packagelist.RData")
}
}
Cuando instalo una nueva versión de R, solo agrego los elementos necesarios al archivo Rprofile.site y todos los paquetes se reinstalan. Tengo que ajustar el Rprofile.site de todos modos (usando contrastes de suma, agregando el código adicional para Tinn-R, estas cosas), por lo que no es realmente un trabajo extra. Solo lleva más tiempo instalar todos los paquetes nuevamente.
Este último bit es equivalente a lo que se da en la pregunta original como solución. Simplemente no necesito preocuparme por obtener primero la lista de "instalados".
Nuevamente, esto no funciona sin problemas si tiene paquetes que no están instalados desde CRAN. Pero este código es fácilmente extensible para incluir esos también.