2013-02-25 5 views
11

Normalmente installare pacchetti utilizzando:pacchetti Spostare r per nuovo computer che non ha internet

install.packages("foo") 

e Repo su internet. Ma ora ho una nuova macchina in cui voglio replicare i pacchetti dalla mia installazione esistente senza dover ricominciare tutto da capo. (Ho un sacco di pacchetti e accesso a Internet lento)

Entrambe le macchine sono Windows ed eseguono la stessa versione R. (2.13.1)

C'è un modo per farlo? Più vicina che può ottenere è so di poter installare dai file zip locali utilizzando:

install.packages("pathtozip", repos = NULL) 

Ma questo deposito della r di tutte le cerniere da qualche parte? Ho trovato alcuni in luoghi come:

C:\Documents and Settings\foouser\Local Settings\Temp\RtmpjNKkyp\downloaded_packages 

Ma non tutti.

Qualche consiglio?

+1

'copydir.bat' e' movedir.bat' in batchfile copia e sposta rispettivamente le librerie. Vedi http://batchfiles.googlecode.com. Vedi i commenti nella parte superiore di ciascuno di questi file. –

+2

Questa era già una domanda, che non riesco a trovare in questo momento, ma ricordo che @DWin ha dato una risposta molto solida ad esso. –

+0

Grazie a G.Grothendieck e RSaporta. Proverò. –

risposta

11

La funzione .libPaths fornisce un vettore di tutte le librerie sulla macchina. Eseguilo sul tuo vecchio computer per trovarli tutti. Puoi semplicemente copiare tutti questi file nelle librerie della tua nuova macchina (esegui anche .libPaths per scoprire dove).

In alternativa, se si desidera impostare un repository reale (ovvero fondamentalmente un mirror CRAN) sul computer o su un'unità di rete che è possibile aggiornare, è possibile inserire pacchetti binari o di origine in una cartella ed eseguire tools::write_PACKAGES in quella cartella . Puoi loro eseguire install.packages usando l'argomento contriburl e indirizzarlo alla cartella del tuo repository.

+0

Dopo aver eseguito questa procedura, il problema che è possibile eseguire con il 2o approccio (un mirror CRAN locale, utilizzando 'tools :: write_PACKAGES' ecc.), È che alcune librerie potrebbero mancare (es. 'stringi' usa la libreria' ICU4C', che viene automaticamente installata quando è connessa a Internet). Questo commento è inteso come un testa a testa per le persone che intraprendono questo percorso. – steveb

+0

Mi sono imbattuto in quel problema anche una volta. È possibile scaricarlo separatamente o preinstallarlo sulla macchina.In entrambi i casi, le [istruzioni per l'installazione] (https://github.com/gagolews/stringi/blob/master/INSTALL) dalla pagina del progetto sono utili. –

+0

Ho finito per usare le istruzioni di installazione per compilare stringi usando GitHub. Questo ha funzionato bene e ha gestito la dipendenza da ICU4C. – steveb

8

Tutti i pacchetti installati sono memorizzati in una cartella denominata win-library versione \ r, ad esempio, C: \ Users \ Ehsan \ Documents \ R \ win-library \ 2.15 quindi, è sufficiente copia tutte le cartelle all'interno di 2.15 nella stessa cartella della tua nuova macchina. poiché hai la stessa versione di R, non è necessario aggiornarli con update.packages().