Dal Menù dell'interfaccia grafica di R (RGui) alla voce Pacchetti selezionando Carica pacchetto... compare l'elenco dei pacchetti installati – sia i pacchetti previsti di default nella installazione base di R sia i pacchetti aggiuntivi installati dall'utente – che con l'opzione Aggiorna pacchetti... possono (e devono) essere periodicamente aggiornati.
Uno script che genera l'elenco dei pacchetti installati sembrerebbe quindi superfluo, ma voglio dimostrare che non è esattamente così.
Ora copiate e incollate nella Console di R questo script e premete ↵ Invio.
# GENERA LA LISTA DEI PACCHETTI DELL'INSTALLAZIONE ORIGINARIA
#
pacchetti <- as.data.frame(installed.packages()[,c(1:3)], row.names=FALSE) # genera la lista
pacchetti # mostra la lista
write.csv(pacchetti, "C:/Rdati/pacchetti.csv") # salva la lista
#
La prima riga genera la lista di tutti i pacchetti installati e ne salva in una tabella (pacchetti) i primi tre campi (c(1:3)), quelli che ci interessano e che sono il nome del pacchetto (Package), la sua ubicazione nel PC (LibPath), e la versione installata (Version) e la seconda riga mostra la lista nella Console di R.
> pacchetti # mostra la lista
Package LibPath Version
1 abind C:/Users/xxxxx/AppData/Local/R/win-library/x.x x.x.x
2 askpass C:/Users/xxxxx/AppData/Local/R/win-library/x.x x.x.x
3 backports C:/Users/xxxxx/AppData/Local/R/win-library/x.x x.x.x
4 base64enc C:/Users/xxxxx/AppData/Local/R/win-library/x.x x.x.x
5 BayesFactor C:/Users/xxxxx/AppData/Local/R/win-library/x.x x.x.x
6 bayestestR C:/Users/xxxxx/AppData/Local/R/win-library/x.x x.x.x
7 BiasedUrn C:/Users/xxxxx/AppData/Local/R/win-library/x.x x.x.x
8 bitops C:/Users/xxxxx/AppData/Local/R/win-library/x.x x.x.x
..........
272 splines C:/Program Files/R/R-x.x.x/library x.x.x
273 stats C:/Program Files/R/R-x.x.x/library x.x.x
274 stats4 C:/Program Files/R/R-x.x.x/library x.x.x
275 survival C:/Program Files/R/R-x.x.x/library x.x.x
276 tcltk C:/Program Files/R/R-x.x.x/library x.x.x
277 tools C:/Program Files/R/R-x.x.x/library x.x.x
278 translations C:/Program Files/R/R-x.x.x/library x.x.x
279 utils C:/Program Files/R/R-x.x.x/library x.x.x
Tre precisazioni:
→ se dal codice togliete [,c(1:3)] la lista generata comprenderà tutti i campi previsti nelle specifiche dei pacchetti;
→ i pacchetti ubicati in C:/Program Files/R/R-x.x.x/library (dove x.x.x è la versione di R) sono quelli previsti di default nella installazione base di R;
→ quelli ubicati in C:/Users/xxxxx/AppData/Local/R/win-library/x.x (dove xxxxx è il nome dell'utente e x.x la versione di R) sono i pacchetti aggiuntivi installati dall'utente.
La terza riga di codice dello script salva la lista nel file C:\Rdati\pacchetti.csv (da notare che \ è la barra rovesciata o backslash impiegata da Windows come separatore tra i nomi delle directory nel percorso di un file, mentre R impiega la barra obliqua o slash).
Ed è qui che la cosa si fa interessante, perché disporre di un file con i nomi dei pacchetti installati comporta un notevole vantaggio, consentendoci di riprodurre una installazione dei pacchetti aggiuntivi identica a quella corrente:
→ quando si installa un aggiornamento maggiore di R a una nuova versione, indicato da un cambiamento nella prima e/o nella seconda cifra della versione (i.e.: X.X.x oppure x.X.x);
→ quando si installa R ex novo su un altro PC;
→ quando si vogliono aggiungere all'installazione preesistente su un altro PC i pacchetti impiegati nell'installazione corrente.
Precisato che quando cambia solamente la terza cifra del numero della versione (i.e.: x.x.X) questo viene considerata un aggiornamento minore ed è sufficiente disinstallare la versione corrente, installare la nuova versione, ed effettuare l'aggiornamento dei pacchetti dal menù di R (Pacchetti >> Aggiorna pacchetti...), nel caso di una aggiornamento maggiore ci sono tre opzioni:
→ fare coesistere diverse versioni di R e delle relative librerie (ma sono possibili problemi);
→ disinstallare la versione corrente di R e installarne una nuova senza mettere mano alle librerie (ma anche se queste poi vengono poi aggiornate seguendo le indicazioni che si trovano online si può andare incontro a problemi);
→ procedere ogni volta con una installazione pulita di R, che prevede di disinstallare la versione corrente di R, di cestinare tutte le librerie e reinstallarle tutte daccapo.
In quest'ultimo caso, che personalmente impiego e che mi sento di consigliare in quanto mette sicuramente al riparo da qualsiasi problema, il primo passo è leggere il file C:\Rdati\pacchetti.csv che contiene i pacchetti dell'installazione originaria (O) che era installata sul PC, che è stata disinstallata e che si intende replicare:
# IMPORTA LA LISTA DEI PACCHETTI DELL'INSTALLAZIONE ORIGINARIA (O)
#
pacchetti_O <- read.csv("C:/Rdati/pacchetti.csv")[c(-1)] # legge la lista
pacchetti_O # mostra la lista
#
Il secondo passo è generare la lista dei pacchetti installati localmente (L) e che, quando si parte con una installazione pulita di R, comprenderà solamente i pacchetti installati di default in C:/Program Files/R/R-x.x.x/library (dove x.x.x è la versione di R):
# GENERA LA LISTA DEI PACCHETTI INSTALLATI LOCALMENTE (L)
#
pacchetti_L <- as.data.frame(installed.packages()[,c(1:3)], row.names=FALSE) # genera la lista
pacchetti_L # mostra la lista
#
Il terzo passo è generare la lista dei pacchetti aggiuntivi mancanti da installare (M) come differenza tra quelli dell'installazione originaria e quelli già installati localmente (M = O - L). Va da sé che questa differenza esclude i pacchetti dell'installazione base di R, per definizione già installati localmente, e lascia nella lista solamente pacchetti aggiuntivi:
# GENERA LA LISTA DEI PACCHETTI AGGIUNTIVI MANCANTI DA INSTALLARE (M = O - L)
#
pacchetti_M <- setdiff(pacchetti_O$Package, pacchetti_L$Package) # genera la lista
pacchetti_M # mostra la lista
#
Il quarto e ultimo passo è l'installazione dei pacchetti aggiuntivi mancanti (M):
# INSTALLA I PACCHETTI AGGIUNTIVI MANCANTI (M)
#
install.packages(pacchetti_M) # installa i pacchetti mancanti
#
A questo punto confermare con SI le specifiche di configurazione proposte,
quindi selezionare il CRAN preferito, dal quale effettuare il download dei pacchetti (sotto Italy trovate Milano e Padua, io per inveterata abitudine mi collego a Padua che è stato il primo dei due in Italia a implementare la modalità "sicura" https e funziona molto bene, ma ovviamente i due si equivalgono).
Nella Console di R vedrete scorrere il download dei pacchetti e la loro installazione, che include la verifica dell'integrità dei file scaricati. Il processo richiede un po' di tempo, serve un po' di pazienza, consiglio di non fare nulla fino alla conferma dell'avvenuto completamento della procedura.
Al termine è possibile verificare che tutto sia andato a buon fine eseguendo degli script che richiedono qualcuno dei pacchetti appena installati. La procedura qui riportata è stata validata con la versione di R per Windows 4.4.1 a 64 bit, eseguendola più volte su differenti PC con Windows 11 e riproducendo una installazione originaria di oltre 270 pacchetti contenenti oltre 12 000 file, senza alcun problema.
----------
Codice opportunamente modificato e adattato da un post di Roberto Chiosa:
https://robertochiosa.medium.com/import-export-r-packages-a6a122005e00
Nessun commento:
Posta un commento