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.