Ejecute el script R desde la línea de comando

Resuelto Sait asked hace 54 años • 7 respuestas

Tengo un archivo llamado a.r, tiene un chmodvalor de 755,

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

sayHello()

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

Sait avatar Jan 01 '70 08:01 Sait
Aceptado

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.Reso, 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 methodspaquete 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.Rforma 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 .

Dason avatar Aug 19 '2013 05:08 Dason

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 rootprivilegios:

    R -e 'install.packages(c("package1", "package2"), lib="/usr/local/lib/R/site-library")' 
    
biocyberman avatar Aug 02 '2015 19:08 biocyberman

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

B.Kocis avatar Jun 04 '2015 15:06 B.Kocis

Necesita el ?Rscriptcomando 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()
Mehul Rathod avatar Aug 19 '2013 04:08 Mehul Rathod