Tengo un archivo, llamado a.r
, tiene un chmod
755,
sayHello <- function(){
print('hello')
}
sayHello()
¿Cómo puedo ejecutar esto a través de la línea de comandos?
r
command-line
Sait
fuente
fuente
#!/usr/bin/env Rscript
Respuestas:
Si desea que la salida se imprima en el terminal, es mejor usar Rscript
Tenga en cuenta que al usar
R CMD BATCH a.R
eso en lugar de redirigir la salida a la salida estándar y mostrar en la terminal, se creará un nuevo archivo llamado 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 cualquier cosa 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 apropiado#!
a la parte superior del scriptTambién notaré que si está ejecutando en un sistema * unix, existe el útil paquete littler que proporciona una tubería de línea de comando fácil 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 .
fuente
R CMD BATCH
es terrible. Cualquier cosa menos eso ...R CMD INSTALL -l ~/R/lib-dev
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 faltantes y salir, este oneliner puede ser 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:
Para instalar en una ubicación que requiere
root
privilegios:fuente
Rscript -e "getwd()"
en la terminal. Rscript solo imprimirá la salida del comando y no el mensaje de inicio completo de R.r -e "cat(getwd(),'\n')"
si tiene instalado Littler. En esta respuesta, Dirk Eddelbuettel explica la diferencia entre littler y Rscript.R -e 'install.packages("package", repos="http://cran.us.r-project.org")'
R -r 'options(warn=2); install...'
para detener la ejecución y obtener un código de error distinto de cero en caso de que falle la instalación. De lo contrario, cualquierinstall.packages
error son solo advertencias.Una forma más de ejecutar un script R desde la línea de comando sería:
o con
--save
.Consulte también ¿Cuál es la mejor manera de usar scripts R en la línea de comandos (terminal)? .
fuente
Necesita el
?Rscript
comando para ejecutar un script R desde la terminal.Echa un vistazo a http://stat.ethz.ch/R-manual/R-devel/library/utils/html/Rscript.html
Ejemplo
fuente
Cómo ejecutar Rmd en comando con knitr y rmarkdown mediante múltiples comandos y luego subir un archivo HTML a RPubs
Aquí hay un ejemplo: cargue dos bibliotecas y ejecute un comando R
fuente
R -e 'markdown::rpubsUpload("normalDev","NormalDevconJuly.html")'
Otra forma de usar Rscript para sistemas * Unix es la sustitución de procesos .
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:
Similar a
Rscript -e "Rcode"
esto también permite ejecutar sin guardar en un archivo. Por lo tanto, podría usarse junto con scripts que generan código R, por ejemplo:fuente
Solo para documentación, a veces necesitas ejecutar el script como
sudo
:fuente