Easily Expose R Functions to Command Line Arguments.
This package provides an easy wrapper for automagically converting any R function into a command line driven application. It is inspired by easyargs in Python, and uses the R argparse library to access the Python argparse parser.
You can install this package directly from github using:
library(devtools)
install_github('jeremystan/aargh')
For example, consider the simple example app example.R:
library(aargh)
#' Repeat text multiple times, comma delimited
repeat_text <- function(text = 'hi', times = 1L) {
message <- paste(rep(text, times), collapse = ', ')
writeLines(message)
}
aargh(repeat_text)
Then we can run this app as an Rscript
:
$ Rscript example.R
hi
$ Rscript example.R --times 10
hi, hi, hi, hi, hi, hi, hi, hi, hi, hi
$ Rscript example.R --times 5 --text bye
bye, bye, bye, bye, bye
This only works for functions that:
numeric
, integer
, character
or logical
If you want to work with a function that has arguments without defaults, you can simply write a wrapper function that provides a default for those arguments. For example, consider the sample.R example:
library(aargh)
#' Wrap the base sample function to specify the size type
wrap_sample <- function(size = 1L) {
sample(size)
}
aargh(wrap_sample)
Then from the command line:
$ Rscript sample.R
1
$ Rscript sample.R --size 10
[1] 8 3 2 7 4 9 1 6 10 5
Note that you must use the full syntax --arg_name
to change an argument.
For logical arguments, you can use syntax like --flag FALSE
or --flag F
or --flag False
, similarly --flag TRUE
, --flag T
and --flag True
all work. But the flag does not work in isolation (e.g., --flag
will complain it is missing an argument instead of defaulting to TRUE
).
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.