528 votos

Ejecutar R script desde la línea de comandos

Tengo un archivo que se llama una.r, tiene un chmod de 755,

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

sayHello();

Estoy tratando de llamar desde la línea de comandos,

./a.r

Me da el siguiente error,

./a.r: line 1: syntax error near unexpected token `('
./a.r: line 1: `sayHello <- function(){'

R CMD BASH a.r no funciona tampoco. Error: /usr/lib/R/bin/Rcmd: 62: exec: BASH: not found

¿Qué es el mal?

714voto

Dason Puntos 18263

Si desea que la salida de impresión a la terminal, lo mejor es utilizar Rscript

Rscript a.R

Tenga en cuenta que cuando se utiliza R CMD BATCH a.R que en lugar de redirigir la salida a la salida estándar y la visualización en el terminal un nuevo archivo llamado.Goleada va a ser creado.

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

Si usted realmente desea utilizar la ./a.R forma de llamar a la secuencia de comandos podría agregar una apropiada #! a la parte superior de la secuencia de comandos

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

sayHello()

22voto

Mehul Rathod Puntos 780

Usted necesita la ?Rscript comando para ejecutar una R secuencia de comandos desde el terminal.

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

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X