Cambiar la ruta de biblioteca predeterminada R utilizando.libPaths en Rprofile.site no funciona
rstudio library-path (11)
Estoy ejecutando R en Windows, no como administrador. Cuando instalo un paquete, el siguiente comando no funciona:
> install.packages("zoo")
Installing package(s) into ‘C:/Program Files/R/R-2.15.2/library’
(as ‘lib’ is unspecified)
Warning in install.packages :
''lib = "C:/Program Files/R/R-2.15.2/library"'' is not writable
Para instalar un paquete, debo especificar una ubicación de biblioteca:
install.packages("zoo", lib="C:/software/Rpackages")
Para cargar un paquete, también debo especificar la ubicación de la biblioteca:
library("zoo", lib.loc="C:/software/Rpackages")
Todo esto está bien, pero quería ver si podía agregar C:/software/Rpackages
a la ruta de la biblioteca de alguna manera y, por lo tanto, no tener que escribirlo cada vez.
Cuando busqué en línea, encontré que una forma de hacerlo es editar el archivo Rprofile.site
y agregar la línea
.libPaths("C:/software/Rpackages")
Sin embargo, después de hacer esto y comenzar RStudio, este es el resultado que obtengo
> .libPaths()
[1] "C:/Program Files/R/R-2.15.2/library" "C:/Program Files/RStudio/R/library"
¡El comando .libPaths
que agregué al Rprofile.site
no parece haber tenido ningún efecto! ¿Por qué es este el caso? O más importante aún, ¿cómo puedo solucionar el problema para poder instalar y cargar paquetes sin escribir en la ubicación de la biblioteca?
Nota: si inicio RStudio, el .libPaths()
parece funcionar como se supone que debe hacerlo
.libPaths("C:/software/Rpackages")
> .libPaths()
[1] "C:/software/Rpackages" "C:/Program Files/R/R-2.15.2/library"
¿No es extraño?
Encontré una solución here (creo que es una solución) (gracias Carl Schwarz en SFU) por agregar una biblioteca personal que está permanentemente (no es necesario definirla en cada sesión) reconoció si se usa R o Rstudio, y Rstudio la trata como la predeterminado en mi máquina Mac. No lo había visto explícitamente en SO, así que resumí los pasos que dieron, para Windows y luego para Mac.
Para un sistema operativo Windows 7:
Cree un directorio en la unidad donde desee tener su biblioteca personal, por ejemplo, C: / User / Rlibs (u otra que tenga permisos)
Busque / vaya a "Editar variable de entorno para su cuenta"
Haga clic en "Nuevo ..." en el medio de la ventana "Variables ambientales"
En la ventana "Variable de usuario nuevo", escriba R_LIBS para el "Nombre de variable" y la ruta al directorio personal de la biblioteca que creó, p. Ej. C: / Usuario / Rlibs
Haga clic en Aceptar y verá el par Variable / Valor en la ventana Variables de usuario
Haga clic en Aceptar de nuevo
Ahora cuando inicie R (o Rstudio) y escriba el comando .libPaths()
, debería ver la biblioteca personal que creó, así como la biblioteca del sistema R.
Para Mac:
En su directorio "Inicio" o "nombre de usuario", cree una carpeta llamada Rlibs
Inicie la aplicación Terminal
Escriba:
echo "R_LIBS=~/Rlibs"> .Renvrion
Asegúrese de que el caso coincida.Escriba
ls -a
para ver la lista completa de archivos en el directorio, que ahora debe incluir .RenvrionVerifique que el archivo .Renviron se haya configurado correctamente:
more .Renviron
Inicie R / Rstudio y escriba .libPaths()
y debería ver la nueva ruta a su biblioteca personal.
Estaba investigando esto porque R tenía problemas para instalar en la ubicación predeterminada y, en cambio, estaba colocando los paquetes en la carpeta temporal. Resultó ser la última actualización de Mcaffee Endpoint Security que aparentemente tiene problemas con R. Puede desactivar la protección de amenazas mientras instala los paquetes y funcionará correctamente.
He tenido problemas para entender esto. gorkypl dio la solución correcta más arriba la última vez que reinstalé mi sistema operativo y Rstudio, pero esta vez, la configuración de la variable de entorno no se resolvió.
Desinstaló R y Rstudio, creando directorios C: / R y C: / Rstudio y luego reinstaló ambos.
Defina la variable de usuario R_LIBS_USER en su directorio preferido (según la respuesta de gorkypl) y reinicie su máquina para que se cargue la variable de usuario. Open Rstudio, los errores deberían desaparecer.
También puede usar Sys.setenv()
para modificar R_LIBS_USER a la ruta de su biblioteca alternativa que es más fácil y no necesita reiniciar su computadora.
Para ver qué R_LIBS_USER está configurado para ?Sys.getenv()
La help(Startup)
lectura help(Startup)
es útil.
La solución adecuada es establecer la variable de entorno R_LIBS_USER
en el valor de la ruta del archivo a la carpeta de la biblioteca deseada en lugar de hacer que RStudio reconozca un archivo Rprofile.site.
Para establecer la variable de entorno R_LIBS_USER
en Windows, vaya al Panel de control (Propiedades del sistema -> Propiedades avanzadas del sistema -> Variables de entorno -> Variables de usuario) a un valor deseado (la ruta a la carpeta de su biblioteca), por ejemplo
Variable name: R_LIBS_USER
Variable value: C:/software/Rpackages
Al establecer R_LIBS_USER, se asegurará de que la biblioteca aparezca primero en .libPaths () independientemente de que inicie RStudio directamente o haciendo clic con el botón derecho en un archivo y "Abrir con" para iniciar RStudio.
La solución Rprofile puede funcionar si RStudio se inicia siempre haciendo clic en el acceso directo de RStudio. En este caso, bastará con establecer el directorio de trabajo predeterminado en el directorio que alberga su Rprofile . La solución de Rprofile no funciona al hacer clic en un archivo para iniciar RStudio porque eso cambia el directorio de trabajo fuera del directorio de trabajo predeterminado.
Leí el archivo Léame. En eso mencionaron usar .libPaths () en la línea de comando para verificar qué rutas están ahí. Tenía 2 rutas de biblioteca antes. Cuando utilicé el comando .libpath ("C: / Program Files / R / R-3.2.4revised / library") donde quería, cambió la ruta de la biblioteca. Cuando escribí .libPaths () nuevamente en la línea de comando, me mostró la ruta correcta. Espero que esto ayude
Por lo general, trato de mantener todos mis paquetes en una sola biblioteca, pero si desea agregar una biblioteca, ¿por qué no anexar la nueva biblioteca a la biblioteca existente?
.libPaths( c( .libPaths(), "~/userLibrary") )
Entonces obtengo:
> .libPaths()
[1] "/Library/Frameworks/R.framework/Versions/2.15/Resources/library"
[2] "/Users/davidwinsemius/userLibrary"
La función .libPaths
es un poco diferente a la mayoría de las otras funciones no geográficas. Funciona a través de efectos secundarios. Las funciones Sys.getenv
y Sys.setenv
que informan y alteran las variables de entorno R se han dividido, pero .libPaths
puede informar o modificar su objetivo. La información sobre el proceso de inicio de R se puede leer en la página de ayuda de inicio y hay material de RStudio en: https://support.rstudio.com/hc/en-us/articles/200549016-Customizing-RStudio
En su caso, parece que RStudio no respeta la configuración de Rprofile.site o tal vez los está anulando al leer una configuración de Perfil de uno de los valores predeterminados de RStudio. También se debe mencionar que el resultado de esta operación también agrega el contenido de las llamadas a .Library
y .Library.site
, que es una razón más por la que un RStudio- (o cualquier otro IDE o red instalada) alojado en R podría exhibir un comportamiento diferente .
Pude resolver el problema colocando el código en el archivo .Rprofile
en el directorio de trabajo predeterminado.
Primero, encontré la ubicación del directorio de trabajo predeterminado
> getwd()
[1] "C:/Users/me/Documents"
Luego usé un editor de texto para escribir un archivo .Rprofile
simple con la siguiente línea en él
.libPaths("C:/software/Rpackages")
Finalmente, cuando comienzo R
y ejecuto .libPaths()
obtengo el resultado deseado:
> .libPaths()
[1] "C:/software/Rpackages" "C:/Program Files/R/R-2.15.2/library"
[3] "C:/Program Files/RStudio/R/library"
Si no tiene derechos de administrador, también puede ser útil abrir Rprofile.site
-file ubicado en / R-3.1.0 / etc y agregar:
.First <- function(){
.libPaths("your path here")
}
Esto evalúa el .libPath()
directamente al inicio
Si su biblioteca de paquetes predeterminada ha sido modificada después de instalar una nueva versión de R o por cualquier otro medio, puede agregar ambas bibliotecas para usar todos los paquetes con la ayuda de los siguientes comandos. Obtenga la ruta de la biblioteca existente:
.libPaths()
Ahora, configure la ruta existente y la anterior:
.libPaths(c(.libPaths(), "~/yourOldPath"))
Espero eso ayude.
getwd()
[1] "C: / Users /........../ software / My R studio" #copiar el enlace de arriba con doble comilla invertida
.libPaths(new="C:/Users/............/software/My R studio")
#your default path will change for installing pakages