Eliminar una biblioteca de.libPaths() permanentemente sin Rprofile.site
(4)
Esta es una respuesta un poco tardía a la pregunta, pero podría ser útil para otros. Ordené configurar mi propio camino (y eliminar uno de los originales) Tengo:
- usé
.libPaths()
dentro de R para verificar las rutas de la biblioteca actual ; - Identificamos qué caminos mantener. En mi caso, conservó la biblioteca original de R pero eliminó el enlace a mis documentos.
- se encontró la ruta R-Home usando
R.home()
oSys.getenv("R_HOME")
;-
R-Home/R-3.2.2/etc/Rprofile.site
se lee cada vez que se inicia el kernel R. Por lo tanto, cualquier modificación será persistente en cada ejecución de R.
-
-
Rprofile.site
agregando lo siguiente,
.libPaths(.libPaths()[2]) .libPaths("d:/tmp/R/win-library/3.2")
¿Cómo funciona?
- La primera línea elimina todas las rutas menos una (la segunda de la lista original), la segunda línea agrega una ruta adicional. Terminamos con dos caminos.
- tenga en cuenta que uso la notación de ruta de Unix a pesar de usar Windows. R siempre usa la notación Unix, independientemente del sistema operativo
- reiniciado R (utilizando
Ctr+Shift+F10
)
Esto funcionará cada vez ahora.
¿Cómo puedo eliminar permanentemente una biblioteca en R?
.libPaths()
[1] "////per-homedrive1.corp.riotinto.org/homedrive$/Tommy.O''Dell/R/win-library/2.15"
[2] "C:/Program Files/R/R-2.15.2/library"
[3] "C:/Program Files/RStudio/R/library"
El primer elemento es mi carpeta corporativa "Mis documentos", y el apóstrofe en la ruta de mi apellido está causando todo tipo de problemas al usar R CMD INSTALL --build
en un paquete que estoy haciendo, por no mencionar los problemas con los paquetes instalados allí cuando estoy desconectado de la red.
Quiero usar C:/Program Files/R/R-2.15.2/library
como el predeterminado, pero no quiero tener que confiar en un Rprofile.site
.
Lo que he intentado
> .libPaths(.libPaths()[2:3])
> .libPaths()
[1] "C:/Program Files/R/R-2.15.2/library" "C:/Program Files/RStudio/R/library"
Eso parece funcionar, pero solo hasta que reinicie mi sesión R, y luego vuelvo a la salida original de .libPaths () ...
Restarting R session...
> .libPaths()
[1] "////per-homedrive1.corp.riotinto.org/homedrive$/Tommy.O''Dell/R/win-library/2.15"
[2] "C:/Program Files/R/R-2.15.2/library"
[3] "C:/Program Files/RStudio/R/library"
Pensé que tal vez .libPaths()
estaba usando R_LIBS_USER
> Sys.getenv("R_LIBS_USER")
[1] "//per-homedrive1.corp.riotinto.org/homedrive$/Tommy.O''Dell/R/win-library/2.15"
Así que intenté desarmarlo usando Sys.unsetenv("R_LIBS_USER")
pero no persiste entre las sesiones.
Información adicional
Si es importante, aquí hay algunas variables de entorno que pueden ser relevantes ...
> Sys.getenv("R_HOME")
[1] "C:/PROGRA~1/R/R-215~1.2"
> Sys.getenv("R_HOME")
[1] "C:/PROGRA~1/R/R-215~1.2"
> Sys.getenv("R_USER")
[1] "//per-homedrive1.corp.riotinto.org/homedrive$/Tommy.O''Dell"
> Sys.getenv("R_LIBS_USER")
[1] "//per-homedrive1.corp.riotinto.org/homedrive$/Tommy.O''Dell/R/win-library/2.15"
> Sys.getenv("R_LIBS_SITE")
[1] ""
He intentado Sys.unsetenv("R_LIBS_USER")
pero esto tampoco se queda entre las sesiones
He puesto el Sys.unsetenv("R_LIBS_USER")
en un archivo .Rprofile
en la carpeta "own documents"
mi ventana. Parece que ayuda. Mi problema fue que estar en un entorno de directorio activo hizo que el R
rápido de R
y la carga de paquetes fueran increíblemente lentas cuando se conectaba a través de vpn.
Si desea hacer esto en el archivo RProfile
(@ library/base/R/
), puede buscar las líneas donde se R_LIBS_*
las variables de entorno R_LIBS_*
(por ejemplo, Sys.setenv(R_LIBS_SITE=....)
y Sys.setenv(R_LIBS_USER=.....)
) También puede buscar el código .libPaths()
, que establece el árbol de la biblioteca. Por lo tanto, puede lograr su objetivo mediante una combinación de comentar, desarmar y configurar las variables R_LIBS
antes de que .libPaths()
llame como desee. Por ejemplo, algo como:
Sys.unsetenv("R_LIBS")
Sys.unsetenv("R_LIBS_USER")
Sys.setenv(R_LIBS_SITE = "D:/R/libs/site")
Sys.setenv(R_LIBS_USER = "D:/R/libs/user")
Sys.setenv(R_LIBS = "D:/R/libs")
Simplemente configure la variable de entorno R_LIBS
en Windows en algo como
R_LIBS=C:/Program Files/R/R-2.15.2/library
Reiniciar r.