Ejecute el script R desde la línea de comando
Tengo un archivo llamado a.r
, tiene un chmod
valor 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 la terminal, es mejor usar Rscript
Rscript a.R
Tenga en cuenta que al usar R CMD BATCH a.R
eso, en lugar de redirigir la salida a la salida estándar y mostrarla en el terminal, se creará un nuevo archivo llamado a.Rout.
R CMD BATCH a.R
# Check the output
cat a.Rout
Otra cosa a tener en cuenta sobre el uso de Rscript es que no carga el methods
paquete de forma predeterminada, lo que puede causar confusión. Entonces, si confía en algo que proporcionen los métodos, querrá cargarlo explícitamente en su secuencia de comandos.
Si realmente desea utilizar la ./a.R
forma de llamar al script, puede agregar un elemento apropiado #!
en la parte superior del script.
#!/usr/bin/env Rscript
sayHello <- function(){
print('hello')
}
sayHello()
También señalaré que si está ejecutando un sistema *unix, existe el útil paquete littler que proporciona una fácil conexión de línea de comandos a R. ¿Puede ser necesario usar littler para ejecutar aplicaciones brillantes a través de un script? Se pueden encontrar más detalles en esta pregunta .
Esto no responde la pregunta directamente. Pero alguien puede terminar aquí porque quiere ejecutar una línea de R desde la terminal. Por ejemplo, si solo desea instalar algunos paquetes que faltan y salir, este resumen puede resultar muy conveniente. Lo uso mucho cuando de repente descubro que me faltan algunos paquetes y quiero instalarlos donde quiero.
Para instalar en la ubicación predeterminada:
R -e 'install.packages(c("package1", "package2"))'
Para instalar en una ubicación que requiere
root
privilegios:R -e 'install.packages(c("package1", "package2"), lib="/usr/local/lib/R/site-library")'
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 scripts R en la línea de comandos (terminal)? .
Necesita el ?Rscript
comando para ejecutar un script R desde la 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()