R Language
Riproducibile R
Ricerca…
introduzione
Con "Riproducibilità" intendiamo che qualcun altro (forse tu in futuro) può ripetere i passaggi che hai eseguito e ottenere lo stesso risultato. Vedi la vista dell'attività Reproducible Research .
Osservazioni
Per creare risultati riproducibili, è necessario correggere tutte le fonti di variazione. Ad esempio, se viene utilizzato un generatore di numeri casuali (pseudo), il seme deve essere corretto se si desidera ricreare gli stessi risultati. Un altro modo per ridurre la variazione consiste nel combinare il testo e il calcolo nello stesso documento.
Riferimenti
Peng, RD (2011). Ricerca riproducibile in computazionale. Science, 334 (6060), 1226-1227. http://doi.org/10.1126/science.1213847
Peng, Roger D. Relazione scritta per Data Science in R. Leanpub, 2015. https://leanpub.com/reportwriting .
Riproducibilità dei dati
dput()
e dget()
Il modo più semplice per condividere un frame di dati (preferibilmente di piccole dimensioni) è utilizzare una funzione di base dput()
. Esporterà un oggetto R in un formato di testo normale.
Nota: prima di creare i dati di esempio qui sotto, assicurati di essere in una cartella vuota su cui scrivere. Esegui getwd()
e leggi ?setwd
se hai bisogno di cambiare cartella.
dput(mtcars, file = 'df.txt')
Quindi, chiunque può caricare l'oggetto R preciso sul proprio GlobalEnvironment utilizzando la funzione dget()
.
df <- dget('df.txt')
Per oggetti R più grandi, esistono diversi modi per salvarli in modo riproducibile. Vedi Input e output .
Riproducibilità del pacchetto
La riproducibilità del pacchetto è un problema molto comune nella riproduzione di alcuni codici R. Quando vari pacchetti vengono aggiornati, alcune interconnessioni tra loro possono rompersi. La soluzione ideale per il problema è riprodurre l'immagine della macchina del writer del codice R sul tuo computer alla data in cui il codice è stato scritto. E qui arriva il pacchetto checkpoint
.
A partire dal 2014-09-17, gli autori del pacchetto effettuano copie giornaliere dell'intero repository di pacchetti CRAN nel proprio repository mirror: Microsoft R Archived Network. Quindi, per evitare problemi di riproducibilità della confezione durante la creazione di un progetto R riproducibile, tutto ciò che serve è:
- Assicurati che tutti i tuoi pacchetti (e la versione R) siano aggiornati.
- Includi il
checkpoint::checkpoint('YYYY-MM-DD')
nel tuo codice.
checkpoint
creerà una directory .checkpoint
nella directory R_home ( "~/"
). A questa directory tecnica installerà tutti i pacchetti, che sono usati nel tuo progetto. Ciò significa che, il checkpoint
tutti i file .R
nella directory del progetto per raccogliere tutte le chiamate library()
o require()
e installa tutti i pacchetti richiesti nel modulo esistente al CRAN alla data specificata.
PRO Sei libero dal problema di riproducibilità del pacchetto.
CONTRA Per ciascuna data specificata devi scaricare e installare tutti i pacchetti che vengono utilizzati in un determinato progetto che desideri riprodurre. Potrebbe volerci un po 'di tempo.