Lancer le script R à partir de la ligne de commande
7 réponses
si vous voulez que la sortie soit imprimée sur le terminal, il est préférable d'utiliser Rscript
Rscript a.R
notez que lors de l'utilisation de R CMD BATCH a.R
qu'au lieu de rediriger la sortie vers standard out et d'afficher sur le terminal un nouveau fichier appelé a. La déroute sera créée.
R CMD BATCH a.R
# Check the output
cat a.Rout
Si vous voulez vraiment utiliser le ./a.R
de l'appel du script vous pouvez ajouter un #!
en haut du script
#!/usr/bin/env Rscript
sayHello <- function(){
print('hello')
}
sayHello()
je vais aussi noter que si vous utilisez un système * unix, il y a l'utile littler paquet qui fournit la tuyauterie de ligne de commande facile à R.
cela ne répond pas directement à la question. Mais quelqu'un peut finir ici parce qu'il veut lancer un oneliner de R depuis le terminal. Par exemple, si vous voulez juste pour installer certains paquets manquants et quitter ce 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 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.
une autre façon 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 depuis le terminal.
Check out 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 et ensuite télécharger un fichier HTML vers RPubs
voici un exemple: chargez deux bibliothèques et lancez 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. Parfois, vous devez exécuter la prescription comme sudo
:
sudo Rscript path/to/your/file.R
une autre façon D'utiliser Rscript pour les systèmes Unix est substitution de processus .
Rscript <(zcat a.r)
# [1] "hello"
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 la puissance de la ligne de commande, par exemple:
Rscript <(sed s/hello/bye/ a.r)
# [1] "bye"
similaire à Rscript -e "Rcode"
il permet également d'exécuter sans enregistrer dans un fichier. Il peut donc être utilisé en conjonction avec des scripts qui génèrent Code R, p.ex.:
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