r

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() o Sys.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.