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, tengo que especificar una ubicación de biblioteca:
install.packages("zoo", lib="C:/software/Rpackages")
Para cargar un paquete, también tengo que 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 así no tener que escribirlo cada vez.
Mientras buscaba en línea, descubrí que una forma de hacerlo es editar el Rprofile.site
archivo y agregar la línea
.libPaths("C:/software/Rpackages")
Sin embargo, después de hacer esto e iniciar 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 .libPaths
comando que agregué al Rprofile.site
no parece haber tenido ningún efecto! ¿Por qué es este el caso? O, lo que es más importante, ¿cómo puedo solucionar el problema para poder instalar y cargar paquetes sin escribir la ubicación de la biblioteca?
Nota: si inicio RStudio, el .libPaths()
comando parece funcionar como se supone que debe
.libPaths("C:/software/Rpackages")
> .libPaths()
[1] "C:/software/Rpackages" "C:/Program Files/R/R-2.15.2/library"
¿No es extraño?
fuente
install.packages("zoo")
no funciona? Mensaje de error, etc.install.packages("zoo")
--- pero ese no es mi verdadera pregunta, que es acerca de por qué.libPaths()
enRprofile.site
no funciona.Respuestas:
Por lo general, trato de mantener todos mis paquetes en una biblioteca, pero si desea agregar una biblioteca, ¿por qué no agregar la nueva biblioteca (que ya debe existir en su sistema de archivos) a la ruta de la biblioteca existente?
O (y esto hará que userLibrary sea el primer lugar para colocar nuevos paquetes):
Luego obtengo (al menos cuando escribí esto originalmente):
La
.libPaths
función es un poco diferente a la mayoría de las otras funciones no gráficas. Funciona a través de efectos secundarios. Las funcionesSys.getenv
ySys.setenv
que informan y modifican las variables de entorno R se han dividido, pero.libPaths
pueden informar o modificar su objetivo.La información sobre el proceso de inicio de R se puede leer en la
?Startup
página de ayuda y hay material de RStudio en: https://support.rstudio.com/hc/en-us/articles/200549016-Customizing-RStudioEn su caso, parece que RStudio no está respetando la configuración de Rprofile.site o tal vez la está anulando al leer una configuración de .Rprofile de uno de los valores predeterminados de RStudio. También debe mencionarse que el resultado de esta operación también agrega el contenido de las llamadas a ,
.Library
y.Library.site
, razón adicional por la cual un R alojado RStudio- (o cualquier otro IDE o red instalado-) podría exhibir un comportamiento diferente.Como
Sys.getenv()
devuelve el entorno del sistema actual para el proceso R, puede ver la biblioteca y otras rutas con:Los dos que son importantes para almacenar y acceder a paquetes son (ahora diferentes en una caja de Linux):
fuente
c()
vector para asegurar nuevas bibliotecas van a la carpeta personalizada.libPaths
función tiene el mismo efecto por defecto. También hay una diferencia entre los sistemas operativos en cómo se manejan las barras diagonales finales. (No está bien en Windows). Existen otras opciones. Ver?.libPaths
file.exists
y continuar solo si no falta la ruta.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), p. Ej.La configuración de R_LIBS_USER asegurará que la biblioteca se muestre primero en .libPaths () independientemente de iniciar 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 siempre se inicia haciendo clic en el acceso directo de RStudio. En este caso, será suficiente establecer el directorio de trabajo predeterminado en el directorio que aloja su Rprofile . La solución Rprofile no funciona al hacer clic en un archivo para iniciar RStudio porque eso aleja el directorio de trabajo del directorio de trabajo predeterminado.
fuente
.bash_profile
y / o.bashrc
). Consulte aquí: unix.stackexchange.com/questions/117467/… Para configurarlos para la sesión actual, solo escriba en la consolaexport R_LIBS_USER='directory_of_your_choice'
Logré resolver el problema colocando el código en el
.Rprofile
archivo en el directorio de trabajo predeterminado.Primero, encontré la ubicación del directorio de trabajo predeterminado
Luego usé un editor de texto para escribir un
.Rprofile
archivo simple con la siguiente líneaFinalmente, cuando comienzo
R
y ejecuto.libPaths()
obtengo el resultado deseado:fuente
Sys.getenv("HOME")
en la consola r. No estoy seguro de obtener el resultado deseado. Creo que el resultado deseado es lo que mostró 42 en su respuesta stackoverflow.com/a/15170774/754550 . Utiliza .libPaths de una manera ligeramente diferente./superuser/749283/change-rstudio-library-path-at-home-directory
Editar ~ / .Renviron
fuente
Encontré lo que creo que es una solución aquí (gracias Carl Schwarz en SFU) por agregar una biblioteca personal que es permanente (no es necesario que la defina en cada sesión) reconocida si usa R o Rstudio, y Rstudio la trata como la predeterminado en mi máquina Mac. No lo había visto exponer esto explícitamente en SO, así que resumí los pasos que proporcionaron, para Windows y luego para Mac.
Para un sistema operativo Windows 7:
Cree un directorio en la unidad donde desea tener su biblioteca personal, por ejemplo, C: \ User \ Rlibs (u otro para el que tenga permisos)
Busque / vaya a "Editar variable de entorno para su cuenta" en la barra de búsqueda de Windows para editar la configuración del panel de control
Haga clic en "Nuevo ..." en el medio de la ventana "Variables ambientales"
En la ventana "Nueva variable de usuario", escriba R_LIBS para el "Nombre de variable" y la ruta al directorio de la biblioteca personal que creó, por ejemplo, C: \ User \ Rlibs
Haga clic en Aceptar y debería ver el par Variable / Valor en la ventana Variables de usuario
Haga clic nuevamente en Aceptar
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 de Terminal
Tipo:
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 debería 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.fuente
Si no tiene derechos de administrador, también puede ser útil abrir el
Rprofile.site
archivo ubicado en \ R-3.1.0 \ etc y agregar:Esto evalúa el
.libPath()
comando directamente al iniciofuente
He tenido verdaderos problemas para entender esto. gorkypl dio la solución correcta anterior cuando reinstalé mi OS y Rstudio por última vez, pero esta vez, la configuración de mi variable de entorno no se resolvió.
Desinstaló R y Rstudio, creando los 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. Abra 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:
?Sys.getenv()
La lectura
help(Startup)
es útil.fuente
Si su biblioteca de paquetes predeterminada ha cambiado 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 comandos a continuación. Obtenga la ruta de la biblioteca existente:
.libPaths()
Ahora, configure la ruta existente y la anterior:
.libPaths(c(.libPaths(), "~/yourOldPath"))
Espero eso ayude.
fuente
simplemente cambie la carpeta predeterminada para sus bibliotecas R en un directorio sin derechos de administrador, por ejemplo
fuente
Leí el archivo Léame. En eso mencionaron usar .libPaths () en la línea de comando para verificar qué rutas hay. Tuve 2 rutas de biblioteca antes. Cuando utilicé el comando .libpath ("C: / Archivos de programa / R / R-3.2.4 revisado / biblioteca") donde quería, cambió la ruta de la biblioteca. Cuando volví a escribir .libPaths () en la línea de comando, me mostró la ruta correcta. Espero que esto ayude
fuente
En Ubuntu, la forma recomendada de cambiar la ruta de la biblioteca predeterminada para un usuario es establecer la
R_LIBS_USER
variable en el~/.Renviron
archivo.fuente
copie el enlace de arriba con una coma doble invertida
Su ruta predeterminada cambiará para instalar paquetes
fuente
Si desea cambiar la ruta de la biblioteca de forma permanente (sin llamar a .libPath () cada vez que ingrese en R, esto funciona para mí:
cree .Rprofile en su directorio de inicio. (~ / .Rprofile)
escriba el
.libPaths(c( .libPaths(), "your new path" ))
archivo .Rprofile, guarde.abra R (cualquier directorio) y verifique, solo escriba
.libPaths()
, ¡puede encontrar que su ruta de libaray está actualizada!fuente
Estaba investigando esto porque R estaba teniendo problemas para instalar en la ubicación predeterminada y en su lugar solo estaba poniendo los paquetes en la carpeta temporal. Resultó ser la última actualización de Mcaffee Endpoint Security que aparentemente tiene problemas con R. Puede deshabilitar la protección contra amenazas mientras instala los paquetes y funcionará correctamente.
fuente