Es muy conveniente tener scripts R para hacer gráficas simples desde la línea de comandos. Sin embargo, ejecutar R desde los scripts bash no es conveniente en absoluto. El ideal podría ser algo así como¿Cuál es la mejor manera de usar los scripts R en la línea de comandos (terminal)?
#!/path/to/R
...
o
#!/usr/bin/env R
...
pero no he sido capaz de hacer cualquiera de los trabajos.
Otra opción es mantener las secuencias de comandos puramente en R, p. Ej. script.R
, e invocándolo con R --file=script.R
o similar. Sin embargo, de vez en cuando una secuencia de comandos se basará en interruptores de línea de comando oscuros en cuyo punto parte del código existe fuera de la secuencia de comandos. Ejemplo: introducir cosas furtivamente en R desde bash a través de un .Rprofile local, los switches deseados son entonces todo --vanilla
implica excepto --no-init-file
.
Otra opción es una secuencia de comandos bash para almacenar los indicadores R y ser ejecutable fácilmente, que luego llama al script R. El problema es que esto significa que un solo programa acaba de ser dividido en dos archivos que ahora tiene que mantenerse en sincronía, transferidos a nuevas máquinas juntas, etc.
la opción actualmente Desprecio menos está incorporando la R en una escritura del golpe :
#!/bin/bash
... # usage message to catch bad input without invoking R
... # any bash pre-processing of input
... # etc
R --random-flags <<RSCRIPT
# R code goes here
RSCRIPT
Todo en un solo archivo. Es ejecutable y maneja fácilmente los argumentos. El problema es que combinar bash y R como este elimina la posibilidad de que cualquier IDE no falle en uno u otro, y hace que mi corazón duela realmente mal.
¿Hay alguna forma mejor en la que me pierdo?
Sí, creo que esta es la manera "oficial" de hacerlo. – Frank
Y al ejecutar 'Rscript --help' desde la línea de comandos se enumerarán muchas opciones útiles que se pueden agregar al shebang, como' --vanilla'. – flodel
Mencionemos también la función 'commandArgs' y los paquetes' getopt' y 'optparse' para analizar la línea de comando. De modo que los argumentos y las opciones también se pueden pasar a sus scripts cuando se ejecutan desde la línea de comandos. – flodel