Ejecutar script R desde la línea de comando

Tengo un archivo, llamado ar , tiene un chmod de 755,

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

¿Cómo puedo ejecutar esto a través de la línea de comandos?

Si desea que la salida se imprima en el terminal, es mejor usar Rscript

 Rscript aR 

Tenga en cuenta que al usar R CMD BATCH aR vez de redirigir la salida a la salida estándar y mostrar en el terminal, se creará un nuevo archivo llamado a.Rout.

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

Si realmente quieres usar la forma ./aR de invocar el script, ¡podrías agregar un #! apropiado #! a la cima de la secuencia de comandos

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

También notaré que si está ejecutando en un sistema * unix, existe el paquete más útil que proporciona una línea de línea de comandos fácil a R.

Esto no responde la pregunta directamente. Pero alguien puede terminar aquí porque quiere ejecutar un oneliner de R desde la terminal. Por ejemplo, si solo desea instalar algunos paquetes faltantes y salir, este documento de línea puede ser muy útil. Lo uso mucho cuando de repente descubro que echo de menos algunos paquetes, y quiero instalarlos donde yo quiera.

 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. 

Una forma más de ejecutar un script R desde la línea de comando sería:

 R < scriptName.R --no-save 

o con --save .

Consulte también ¿Cuál es la mejor manera de utilizar los scripts R en la línea de comando (terminal)? .

Necesita el comando ?Rscript para ejecutar un script R desde el terminal.

Consulte http://stat.ethz.ch/R-manual/R-devel/library/utils/html/Rscript.html

Ejemplo

 ## 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() 

Cómo ejecutar Rmd en comando con knitr y rmarkdown por múltiples comandos y luego subir un archivo HTML a RPubs

Aquí hay un ejemplo: cargue dos bibliotecas y ejecute un comando R

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

Solo por documentación. Algunas cosas que necesita para ejecutar el script como sudo :

 sudo Rscript path/to/your/file.R 

Otra forma de usar Rscript para sistemas * Unix es la Sustitución de procesos .

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

Lo cual obviamente hace lo mismo que la respuesta aceptada, pero esto le permite manipular y ejecutar su archivo sin guardar el poder de la línea de comando, por ejemplo:

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

Similar a Rscript -e "Rcode" también permite ejecutar sin guardar en un archivo. Por lo tanto, podría usarse junto con scripts que generan código R, por ejemplo:

 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