Exécutez le script R à partir de la ligne de commande
J'ai un fichier, appelé a.r
, il a un chmod
de 755,
sayHello <- function(){
print('hello')
}
sayHello()
Comment puis-je exécuter via la ligne de commande?
- Double Possible de What est la meilleure façon d'utiliser R scripts en ligne de commande?
- tl;dr: il suffit d'ajouter à la première ligne de votre script:
#!/usr/bin/env Rscript
Vous devez vous connecter pour publier un commentaire.
Si vous voulez la sortie pour imprimer sur le terminal, il est préférable d'utiliser Rscript
Noter que lors de l'utilisation de
R CMD BATCH a.R
qu'au lieu de redirection de la sortie standard et l'affichage sur le terminal d'un nouveau fichier appelé".La déroute sera créé.Une autre chose à noter à propos de l'utilisation Rscript est qu'il ne charge pas la
methods
package par défaut, ce qui peut entraîner de la confusion. Donc, si vous êtes en s'appuyant sur tout ce qui fournit des méthodes, vous aurez envie de le charger explicitement dans votre script.Si vous voulez vraiment utiliser le
./a.R
de l'appel du script vous pouvez ajouter un#!
en haut du scriptJe vais aussi noter que si vous êtes en cours d'exécution sur un *système unix, il est utile littler package qui permet de rejoindre facilement la ligne de commande de la tuyauterie à R.
R CMD BATCH
est terrible. Rien mais que ...R CMD INSTALL -l ~/R/lib-dev
Rscript -e ".libPaths(\"<PATH>\"); source(\"<SCRIPT>.R\")"
Cela ne permet pas de répondre directement à la question. Mais quelqu'un peut fin jusqu'ici parce qu'ils veulent exécuter un oneliner de R à partir de la borne. 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 soudain je trouve que je manque quelques paquets, et je veux l'installer à l'endroit où je veux.
Rscript -e "getwd()"
dans le terminal. Rscript ne imprimer les résultats de la commande et de ne pas la R message de démarrage.r -e "cat(getwd(),'\n')"
si vous avez littler installé. Dans cette réponse Dirk Eddelbuettel explique la différence entre littler et Rscript.R -e 'install.packages("package", repos="http://cran.us.r-project.org")'
R -r 'options(warn=2); install...'
afin de stopper l'exécution et d'obtenir un non-zéro code d'erreur en cas d'échec de l'installation. Sinon, toutinstall.packages
erreurs sont juste des avertissements.D'une façon de plus de l'exécution d'un script R à partir de la ligne de commande serait:
ou avec
--save
.Voir aussi Quelle est la meilleure façon d'utiliser R scripts en ligne de commande (terminal)?.
Vous avez besoin de la
?Rscript
commande 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
Comment faire pour exécuter Mdm dans la commande avec knitr et rmarkdown par de multiples commandes et ensuite Télécharger un fichier HTML pour RPubs
Ici est un exemple: la charge de deux bibliothèques et exécuter une commande R:
R -e 'markdown::rpubsUpload("normalDev","NormalDevconJuly.html")'
Encore une autre façon d'utiliser Rscript pour *les systèmes Unix est Processus De Substitution.
Qui n'est évidemment la même que l'on a accepté la réponse, mais cela permet de manipuler et d'exécuter votre fichier sans l'enregistrer, la puissance de la ligne de commande, par exemple:
Similaire à
Rscript -e "Rcode"
il permet aussi d'exécuter sans l'enregistrer dans un fichier. Il peut donc être utilisé en conjonction avec des scripts qui génèrent R-code, par exemple:Juste pour la documentation. Sometines vous devez exécuter le script que
sudo
: