script run from r command-line

from - run r file linux



Ejecutar el script R desde la lĂ­nea de comando (7)

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?


Cómo ejecutar Rmd en comando con knitr y rmarkdown por varios comandos y luego cargar un archivo HTML a RPubs

Aquí hay un ejemplo: cargar dos bibliotecas y ejecutar un comando R

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


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 oneliner puede ser muy conveniente. Lo uso mucho cuando de repente descubro que extraño algunos paquetes, y quiero instalarlos donde quiero.

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.


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

Echa un vistazo a 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()


Otra forma más de usar Rscript para los sistemas * Unix es mediante la sustitución de procesos .

Rscript <(zcat a.r) # [1] "hello"

Lo que 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/ a.r) # [1] "bye"

Similar a Rscript -e "Rcode" también permite ejecutarse sin guardar en un archivo. Por lo tanto, podría utilizarse junto con los 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


Sólo para la documentación. A veces necesitas ejecutar el script como sudo :

sudo Rscript path/to/your/file.R


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

Rscript a.R

Tenga en cuenta que al utilizar R CMD BATCH aR lugar 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 a.R # Check the output cat a.Rout

Si realmente desea utilizar la forma ./aR de llamar al script, ¡podría agregar un #! apropiado #! a la parte superior del guión

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

También señalaré que si está ejecutando en un sistema * unix, existe el útil paquete littler que proporciona una línea de comandos fácil para R.


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

R < scriptName.R --no-save

o con --save .

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