Análisis de argumentos de línea de comando en scripts R

¿Hay alguna forma conveniente de analizar automáticamente los argumentos de línea de comando pasados ​​a los scripts R?

Algo así como Getopt::Long de perl Getopt::Long ¿ Getopt::Long ?

Hay tres paquetes en CRAN:

  • getopt : comportamiento getopt similar a C
  • optparse : un analizador de líneas de comando inspirado en la biblioteca de Python
  • argparse : una línea de comando opcional y un analizador de argumentos posicional (inspirado en la biblioteca argparse de Python). Este paquete requiere que se instale un intérprete de Python con los argparse y json (o simplejson ).

Actualización :

  • docopt : le permite definir una interfaz de línea de comando con solo darle una descripción en el formato específico. Es un puerto a docopt.py .
  • argparser : analizador de argumentos de línea de comandos multiplataforma escrito puramente en R sin dependencias externas. Este paquete es útil con el front-end Rscript y facilita convertir un script R en un script ejecutable.
  • Minimist : Un enlace a la biblioteca JavaScript minimist. Este módulo implementa las agallas del analizador de argumentos optimist sin toda la decoración extravagante (sin dependencias externas)
  • optigrab : analiza las opciones desde la línea de comandos usando una syntax simple y limpia. Requiere poca o ninguna especificación y admite opciones cortas y largas, syntax de estilo GNU, Java o Microsoft, comandos verbales y más.

La forma más simple es usar commandArgs (). Ejemplo: guarde el código siguiente como “options.R”:

 options < - commandArgs(trailingOnly = TRUE) options 

Ejecutar usando "Rscript options.R xyz". Resultado:

 [1] "x" "y" "z" 

es decir, una lista de 3 elementos, uno por argumento.

Solo para complementar la respuesta de Rscript:

 edd@max:~$ r -e 'print(argv)' flim flam flom [1] "flim" "flam" "flom" edd@max:~$ 

Simplemente usamos argv en Littler . Tuve buena suerte con getopt , el más antiguo de los dos paquetes de análisis disponibles.

¿Puedo presentar ArgumentParser en el paquete Xmisc ? Es un analizador de línea de comandos inspirado en argparse de Python, pero no tiene Python.

http://cran.r-project.org/web/packages/Xmisc/vignettes/Xmisc-ArgumentParser.pdf

enter image description here