Exécuter le script R à partir de la ligne de commande

J’ai un fichier, appelé ar , il a un chmod de 755,

 sayHello <- function(){ print('hello') } sayHello() 

Comment puis-je exécuter cela via la ligne de commande?

Si vous souhaitez que la sortie s’imprime sur le terminal, il est préférable d’utiliser Rscript

 Rscript aR 

Notez que lorsque vous utilisez R CMD BATCH aR au lieu de redirect la sortie vers la sortie standard et d’afficher sur le terminal un nouveau fichier appelé a.Rout sera créé.

 R CMD BATCH aR # Check the output cat a.Rout 

Si vous voulez vraiment utiliser la méthode ./aR pour appeler le script, vous pouvez append un #! approprié #! en haut du script

 #!/usr/bin/env Rscript sayHello < - function(){ print('hello') } sayHello() 

Je vais également noter que si vous utilisez un système * unix, il y a le petit paquet utile qui fournit une ligne de commande facile à R.

Cela ne répond pas directement à la question. Mais quelqu’un peut se retrouver ici parce qu’il veut lancer un programme de R à partir du terminal. Par exemple, si vous voulez simplement installer des paquets manquants et quitter, cet oneliner peut être très pratique. Je l’utilise beaucoup quand je découvre soudainement que certains paquets me manquent, et je veux les installer là où je veux.

 R -e 'install.packages(c("package1", "package2"))' # install to default location. sudo R -e 'install.packages(c("package1", "package2"), lib="/usr/local/lib/R/site-library")' # install to location that requires root. 

Un autre moyen d’exécuter un script R à partir de la ligne de commande serait:

 R < scriptName.R --no-save 

ou avec --save .

Voir aussi Quelle est la meilleure façon d'utiliser les scripts R sur la ligne de commande (terminal)? .

Vous avez besoin de la commande ?Rscript pour exécuter un script R à partir du terminal.

Découvrez http://stat.ethz.ch/R-manual/R-devel/library/utils/html/Rscript.html

Exemple

 ## example #! script for a Unix-alike #! /path/to/Rscript --vanilla --default-packages=utils args < - commandArgs(TRUE) res <- try(install.packages(args)) if(inherits(res, "try-error")) q(status=1) else q() 

Comment exécuter Rmd en commande avec knitr et rmarkdown par plusieurs commandes puis Télécharger un fichier HTML vers RPubs

Voici un exemple: charger deux bibliothèques et exécuter une commande R

 R -e 'library("rmarkdown");library("knitr");rmarkdown::render("NormalDevconJuly.Rmd")' R -e 'library("markdown");rpubsUpload("normalDev","NormalDevconJuly.html")' 

Juste pour la documentation. Sometines vous devez exécuter le script comme sudo :

 sudo Rscript path/to/your/file.R 

Une autre façon d’utiliser Rscript pour les systèmes Unix est la substitution de processus .

 Rscript < (zcat ar) # [1] "hello" 

Ce qui fait évidemment la même chose que la réponse acceptée, mais cela vous permet de manipuler et d'exécuter votre fichier sans l'enregistrer dans la ligne de commande, par exemple:

 Rscript < (sed s/hello/bye/ ar) # [1] "bye" 

Semblable à Rscript -e "Rcode" il permet également de s'exécuter sans enregistrer dans un fichier. Il pourrait donc être utilisé avec des scripts qui génèrent du code R, par exemple:

 Rscript < (echo "head(iris,2)") # Sepal.Length Sepal.Width Petal.Length Petal.Width Species # 1 5.1 3.5 1.4 0.2 setosa # 2 4.9 3.0 1.4 0.2 setosa