Dove memorizza i pacchetti R?


207

La install.packages()funzione in R è l'utilità di decompressione automatica che ottiene e installa i pacchetti in R.

  1. Come faccio a sapere quale directory R ha scelto di archiviare i pacchetti?

  2. Come posso cambiare la directory in cui R memorizza e accede ai pacchetti?

Risposte:


249

Il comando install.packages guarda attraverso la variabile .libPaths. Ecco cosa è il mio predefinito su OSX:

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

Non installo i pacchetti lì per impostazione predefinita, preferisco averli installati nella mia directory home. Nel mio .Rprofile, ho questa riga:

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

Ciò aggiunge la directory "/ Users / tex / lib / R" all'inizio della variabile .libPaths.


questo è quello che mi piacerebbe fare, ma come posso accedere e .Rprofile? Il prompt non lo riconosce né come oggetto né come funzione
— Milktrader

7
È un file . Ancora una volta, leggi il manuale e / o la guida (Avvio).
— Dirk Eddelbuettel,

44

Questo è documentato nel manuale "R Installazione e amministrazione" fornito con l'installazione.

Sulla mia scatola di Linux:

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

nel senso che il percorso predefinito è il primo di questi. Puoi sovrascriverlo tramite un argomento su entrambi install.packages()(dall'interno di R) o R CMD INSTALL(all'esterno di R).

Puoi anche eseguire l'override impostando la variabile R_LIBS_USER.


Ho una macchina Windows Vista, ma supponendo che esista la stessa procedura, specificate la directory nell'elenco degli argomenti install.packages () insieme al nome del pacchetto?
— Milktrader,

3
Hai già scoperto 'help (install.packages)'? Inoltre, vedi "aiuto (avvio)" come da mio ultimo commento. E leggi quei manuali. Infine, su * doze tendo a impostare R_LIBS = "C: / opt / R / library" in un file .Renviron. So che lo farai anche tu, quindi leggi l'aiuto (Avvio). Ok? ;-)
— Dirk Eddelbuettel

1
Ho una dozzina di manuali R sul mio Kindle (compresa la 3000+ pagina uno) e non ero a conoscenza del file di aiuto di avvio. Ho letto i manuali e ho raggiunto un vicolo cieco. Vai a capire che è stata sempre una risposta semplice. Perdo punti per domande RTFM <- Non ne ho molti da perdere. Grazie ancora Dirk. Ci vediamo a R / Finance la prossima settimana. Accelerando le abilità R nel miglior modo possibile, così non mi spolvererò durante le presentazioni.
— Milktrader,

1
La pagina 3000+ è una raccolta di tutte le pagine della guida - meno utili. Il precedente 'Installazione e amministrazione' dovrebbe essere molto utile per quello che stai cercando qui.
— Dirk Eddelbuettel,

c'è un modo equivalente per trovarli dalla riga di comando bash? cioè, una variabile d'ambiente che specifica dove sono installate le librerie R se $R_LIBSe $R_LIBS_USERnon sono impostate? (Voglio essere in grado di eseguire uno script R nella inst/directory di un pacchetto installato) su qualsiasi sistema Unix.
— David LeBauer,

12

Grazie per la direzione dai due risponditori di cui sopra. Il suggerimento di James Thompson ha funzionato meglio per gli utenti Windows.

  1. Vai a dove è installato il tuo programma R. Questo è indicato come R_Homein letteratura. Una volta trovato, vai nella sottodirectory / etc.

    C:\R\R-2.10.1\etc
  2. Seleziona il file in questa cartella denominata Rprofile.site. Lo apro con VIM. Scoprirai che questo è un file bare-bones con meno di 20 righe di codice. Ho inserito quanto segue nel codice:

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

    (Il commento è stato aggiunto per tenere traccia di ciò che ho fatto al file.)

  3. In R, digitando la .libPaths()funzione si ottiene il primo obiettivo inC:/R/Library

NOTA: esiste probabilmente più di un modo per raggiungere questo obiettivo, ma altri metodi che ho provato non hanno funzionato per qualche motivo.


1
Copio la suddetta riga incollata .libPaths=("C:/R/library")nel mio file Rprofile.site . Avvio R 2.13.1 64 bit e ottengo questo errore: Errore: impossibile modificare il valore dell'associazione bloccata per '.libPaths' Sto utilizzando Windows 7.
— Fred

1
Vedi la risposta di Dave : dovrebbe essere .libPaths("...")(una chiamata e non un compito).
— CodeFox,

0

Non vuoi il '='

Usa .libPaths("C:/R/library")nel tuo Rprofilefile .site

E assicurati di avere il simbolo "corretto (Shift-2)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.