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)? .