¿Dónde almacena R los paquetes?


207

La install.packages()función en R es la utilidad de descompresión automática que obtiene e instala paquetes en R.

  1. ¿Cómo puedo saber qué directorio R ha elegido para almacenar paquetes?

  2. ¿Cómo puedo cambiar el directorio en el que R almacena y accede a los paquetes?

Respuestas:


249

El comando install.packages mira a través de la variable .libPaths. Esto es lo que el mío tiene por defecto en OSX:

> .libPaths()
[1] "/Library/Frameworks/R.framework/Resources/library"

No instalo paquetes por defecto, prefiero tenerlos instalados en mi directorio de inicio. En mi .Rprofile, tengo esta línea:

.libPaths( "/Users/tex/lib/R" )

Esto agrega el directorio "/ Users / tex / lib / R" al frente de la variable .libPaths.


Esto es lo que me gustaría hacer, pero ¿cómo accedo y .Rprofile? El mensaje no lo reconoce como un objeto o una función
Milktrader

77
Se trata de un archivo . Nuevamente, lea el excelente manual y / o ayuda (Inicio).
Dirk Eddelbuettel

44

Esto está documentado en el manual 'R Instalación y administración' que vino con su instalación.

En mi caja de Linux:

R> .libPaths()
[1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library"      
[3] "/usr/lib/R/library"           
R> 

lo que significa que la ruta predeterminada es la primera de ellas. Puede anular eso mediante un argumento para ambos install.packages()(desde dentro de R) o R CMD INSTALL(desde fuera de R).

También puede anular configurando la variable R_LIBS_USER.


Tengo una máquina con Windows Vista, pero suponiendo que exista el mismo procedimiento, ¿especifica el directorio en la lista de argumentos install.packages () junto con el nombre del paquete?
Milktrader

3
¿Ya descubriste 'help (install.packages)'? Además, vea 'ayuda (Inicio)' según mi último comentario. Y lea esos manuales. Por último, en * doze tiendo a configurar R_LIBS = "C: / opt / R / library" en un archivo .Renviron. Sé que también va a preguntar sobre eso, así que lea la ayuda (Inicio). ¿De acuerdo? ;-)
Dirk Eddelbuettel

1
Tengo una docena de manuales R en mi Kindle (incluida la página 3,000+) y no estaba al tanto del archivo de ayuda de inicio. He estado leyendo los manuales y llegué a un callejón sin salida. Imagínate que fue una respuesta simple todo el tiempo. ¿Pierdo puntos por preguntas RTFM <- No tengo muchos que perder. Gracias de nuevo Dirk. Nos vemos en R / Finance la próxima semana. Incrementar las habilidades de R lo mejor que pueda para que no me espolvoreen durante las presentaciones.
Milktrader

1
La página 3000+ es una recopilación de toda la página de ayuda, la menos útil. La mencionada 'Instalación y administración' debería ser muy útil para lo que está buscando aquí.
Dirk Eddelbuettel

¿Hay una manera equivalente de encontrarlos desde la línea de comando bash? es decir, una variable de entorno que especifica dónde se instalan las bibliotecas R si $R_LIBSy $R_LIBS_USERno se han establecido? (Quiero poder ejecutar un script R en el inst/directorio de un paquete instalado) en cualquier sistema Unix.
David LeBauer

12

Gracias por la dirección de los dos respondedores anteriores. La sugerencia de James Thompson funcionó mejor para los usuarios de Windows.

  1. Vaya a donde está instalado su programa R. Esto se conoce como R_Homeen la literatura. Una vez que lo encuentre, vaya al subdirectorio / etc.

    C:\R\R-2.10.1\etc
  2. Seleccione el archivo en esta carpeta llamado Rprofile.site. Lo abro con VIM. Encontrará que este es un archivo básico con menos de 20 líneas de código. Inserté lo siguiente dentro del código:

    # my custom library path
    .libPaths("C:/R/library")
    

    (El comentario agregado para realizar un seguimiento de lo que hice al archivo).

  3. En R, al escribir la .libPaths()función se obtiene el primer objetivo enC:/R/Library

NOTA: es probable que haya más de una forma de lograr esto, pero otros métodos que probé no funcionaron por alguna razón.


1
Copio dicha línea pegada .libPaths=("C:/R/library")en mi archivo Rprofile.site . Lanzo R 2.13.1 de 64 bits y obtengo este error: Error: no se puede cambiar el valor del enlace bloqueado para '.libPaths' Estoy usando Windows 7.
Fred

1
Vea la respuesta de Dave : debería ser .libPaths("...")(una llamada y no una tarea).
CodeFox

0

No quieres el '='

Úselo .libPaths("C:/R/library")en su Rprofilearchivo .site

Y asegúrese de tener el símbolo correcto "(Shift-2)

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.