HOWTO · R
Come eseguire uno script R dalla riga di comando
Scopri come eseguire uno script R dal terminale o dal prompt dei comandi con Rscript, passare argomenti, pianificare un'attività cron e tenere traccia degli script con Git.
In questa pagina
Per eseguire uno script R da un terminale o dal prompt dei comandi, salva il codice in un file e avvialo con Rscript path/to/script.R. R deve essere installato e la shell deve poter trovare Rscript tramite PATH; in caso contrario, usa il percorso completo dell’eseguibile. Questo metodo è utile per analisi ripetibili, script che accettano dati in ingresso e attività pianificate.
Che cos’è Rscript?
Rscript è il programma da riga di comando che esegue codice R contenuto in uno script o fornito direttamente come comando. È adatto alle attività non interattive: le istruzioni si trovano in un file o in un comando e il processo termina quando il lavoro è finito. In una sessione R interattiva, invece, puoi inserire comandi ed esaminare i risultati man mano.
L’installazione di R include Rscript. Apri un terminale su macOS o Linux, oppure il Prompt dei comandi o PowerShell su Windows, e verifica se il comando è disponibile con Rscript --version. Se la shell segnala che non trova il comando, installa R oppure individua l’eseguibile installato con R e usa il suo percorso completo. Le directory di installazione variano in base al sistema operativo e al tipo di installazione, quindi evita di affidarti a un percorso specifico per versione copiato da un altro computer.
Eseguire uno script R con Rscript
Crea un file chiamato mean.R con questo breve esempio. Se sono presenti numeri passati dalla riga di comando, li usa; altrimenti ricorre a un insieme di valori predefinito. Puoi quindi eseguire il file così com’è oppure adattarlo ad altri valori.
args <- commandArgs(trailingOnly = TRUE)
numbers <- if (length(args) > 0) as.numeric(args) else c(1, 2, 3, 4, 5)
cat("Mean: ", mean(numbers), "\n", sep = "")
Con i dati predefiniti, il codice usa i numeri da 1 a 5; in base all’ispezione del codice, dovrebbe stampare Mean: 3. L’etichetta Mean nell’esempio resta in inglese. Questo esempio non è stato verificato eseguendolo.
Eseguilo dalla directory che contiene il file con Rscript mean.R. Per avviarlo da un’altra directory, specifica il percorso dello script, ad esempio Rscript /path/to/mean.R. Su Windows, racchiudi tra virgolette un percorso che contiene spazi, per esempio Rscript "C:/Users/Ada/My Scripts/mean.R"; usa il formato di percorso accettato dalla shell che hai aperto. Se Rscript non è in PATH, sostituiscilo con il percorso completo dell’eseguibile e lascia il percorso dello script come argomento separato.
Per una breve espressione che non richiede un file, usa l’opzione -e in una shell di tipo POSIX o in PowerShell, ad esempio Rscript -e 'mean(iris$Sepal.Length)'. Questa forma con virgolette singole non è adatta al Prompt dei comandi di Windows, che le considera caratteri letterali; nel Prompt dei comandi usa l’esempio con il file salvato. Il dataset iris è disponibile in un’installazione standard di R. Le opzioni --help e --version mostrano rispettivamente la guida del comando e le informazioni sulla versione; --verbose richiede un output del comando più dettagliato. Possono essere utili per controllare i dettagli di avvio o diagnosticare un’esecuzione. -e inizia con un solo trattino, quindi non tutte le opzioni iniziano con due.
Passare argomenti a uno script R
Uno script può leggere i valori che seguono il nome del file con commandArgs(trailingOnly = TRUE). L’esempio precedente converte ogni argomento fornito in un numero e ne calcola la media. Per esempio, Rscript mean.R 10 20 30 passa tre valori distinti. Se un dato contiene spazi, racchiudilo tra virgolette nella shell affinché venga ricevuto come un unico argomento. Indica chiaramente il formato atteso dallo script e, se usi dati diversi dai numeri, adatta di conseguenza la conversione e la convalida.
Pianificare script R con cron
Sui sistemi Unix-like, cron può avviare uno script secondo una pianificazione. Modifica il crontab dell’utente con crontab -e, quindi aggiungi una voce come 0 2 * * * /usr/bin/Rscript /path/to/report.R per richiedere un’esecuzione giornaliera alle 2:00, secondo la configurazione cron del computer. Il percorso dell’eseguibile e quello dello script sono esempi: usa i percorsi presenti sul computer che eseguirà l’attività.
Le attività pianificate possono avviarsi con una directory di lavoro e un ambiente diversi da quelli della shell interattiva. Usa percorsi assoluti per l’eseguibile, lo script e i file di input o output; se ti serve diagnosticare le esecuzioni pianificate, predisponi la registrazione dell’output o degli errori. Cron è un’opzione di pianificazione per sistemi Unix-like; su Windows puoi usare l’Utilità di pianificazione del sistema.
Integrare R con Git per il controllo delle versioni
Git può tenere traccia delle modifiche agli script R e ai file correlati del progetto, facilitando la revisione delle modifiche o il ripristino di una versione precedente. È facoltativo: Git non è necessario per eseguire uno script con Rscript. Nella directory del progetto, inizializza un repository con git init, aggiungi i file da tenere sotto controllo con git add e registra uno snapshot con git commit. Controlla quali file verranno inclusi nel commit ed evita di aggiungere dati generati o credenziali, a meno che non debbano far parte della cronologia del progetto.
Conclusione
Salva il codice in un file R, quindi avvialo con Rscript seguito dal percorso dello script. Verifica che R sia installato e che la shell possa trovare l’eseguibile, racchiudi i percorsi tra virgolette quando necessario e passa gli eventuali dati dopo il nome del file. Per le attività ricorrenti, usa uno strumento di pianificazione e percorsi adatti al relativo ambiente; usa Git se vuoi tenere traccia delle modifiche agli script.
Domande frequenti
-
Come si installano R e Rscript?
Installa R per il tuo sistema operativo seguendo le relative istruzioni.Rscriptè incluso in R: per questo flusso di lavoro non serve installarlo separatamente. -
Posso eseguire uno script R su Windows?
Sì. Usa il Prompt dei comandi o PowerShell ed eseguiRscript script.Rse l’eseguibile è disponibile inPATH. Altrimenti, avvia l’eseguibile installato specificandone il percorso completo. Per i percorsi che contengono spazi, usa le virgolette secondo le regole della shell. -
Qual è la differenza tra Rscript e R?
Rscriptè pensato per eseguire uno script o un’espressione dalla riga di comando. Il comandoRavvia comunemente una sessione interattiva, in cui puoi inserire comandi ed esaminare i risultati mentre lavori. -
Come posso controllare la versione installata di Rscript?
EseguiRscript --versionnel terminale o nel Prompt dei comandi. Il comando deve essere disponibile inPATHoppure va avviato specificandone il percorso completo. -
Come posso eseguire più script R uno dopo l’altro?
In una shell Unix-like, unisci i comandi con&&, ad esempioRscript first.R && Rscript second.R. Il secondo comando viene eseguito solo se il primo termina correttamente. Per una sequenza più lunga, inserisci le chiamate in uno script di shell oppure usa un altro sistema di pianificazione adatto al tuo sistema.