J'ai un fichier, appelé a.r
il a un chmod
de 755,
sayHello <- function(){
print('hello')
}
sayHello()
Comment puis-je l'exécuter en ligne de commande ?
J'ai un fichier, appelé a.r
il a un chmod
de 755,
sayHello <- function(){
print('hello')
}
sayHello()
Comment puis-je l'exécuter en ligne de commande ?
Si vous voulez que la sortie s'imprime dans le terminal, il est préférable d'utiliser Rscript.
Rscript a.R
Notez que lorsque vous utilisez R CMD BATCH a.R
qu'au lieu de rediriger la sortie vers standard out et de l'afficher sur le terminal, un nouveau fichier appelé a.Rout sera créé.
R CMD BATCH a.R
# Check the output
cat a.Rout
Une autre chose à noter à propos de l'utilisation de Rscript est qu'il ne charge pas l'application methods
par défaut, ce qui peut prêter à confusion. Donc si vous comptez sur quelque chose que les méthodes fournissent, vous voudrez le charger explicitement dans votre script.
Si vous voulez vraiment utiliser le ./a.R
manière d'appeler le script, vous pourriez ajouter une fonction appropriée #!
au début du script.
#!/usr/bin/env Rscript
sayHello <- function(){
print('hello')
}
sayHello()
Je noterai également que si vous travaillez sur un système *unix, vous pouvez utiliser l'utile plus petit qui fournit un pipeline de ligne de commande facile pour R. Il peut être nécessaire d'utiliser littler pour exécuter des applications brillantes via un script ? Plus de détails peuvent être trouvés dans cette question .
Sans le # ! votre ligne de commande essaie de l'exécuter comme une ligne de commande script, en utilisant le même interpréteur qui interprète vos commandes. Elle ne sait pas que c'est censé être R, même si le fichier se termine par un suffixe .R ou .r. Le # ! indique à la ligne de commande quelle langue est contenue dans le fichier.
Cela ne répond pas directement à la question. Mais quelqu'un peut se retrouver ici parce qu'il veut exécuter un oneliner de R depuis le terminal. Par exemple, si vous voulez juste installer quelques paquets manquants et quitter, cet oneliner peut être très pratique. Je l'utilise souvent lorsque je découvre soudainement qu'il me manque certains paquets et que je veux les installer là où je le souhaite.
Pour installer à l'emplacement par défaut :
R -e 'install.packages(c("package1", "package2"))'
Pour installer à un endroit qui nécessite root
les privilèges :
R -e 'install.packages(c("package1", "package2"), lib="/usr/local/lib/R/site-library")'
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 R scripts sur la ligne de commande (terminal) ? .
Vous avez besoin de la ?Rscript
pour exécuter un script R à partir du terminal.
Vérifiez 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 des commandes multiples et ensuite 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")'
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
3 votes
Duplicata possible de Quelle est la meilleure façon d'utiliser les scripts de R sur la ligne de commande ?
7 votes
Tl;dr : ajoutez simplement comme première ligne de votre script :
#!/usr/bin/env Rscript