The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
A pure R language command line parser inspired by Python’s ‘optparse’ library to be used with Rscript to write “#!” shebang scripts that accept short and long flag/options.
To install the last version released on CRAN use the following command:
install.packages("optparse")
To install the development version use the following command:
install.packages("remotes")
remotes::install_github("trevorld/r-optparse")
This package depends on the R package getopt
.
To run the unit tests you will need the suggested R package testthat
and in order to build the vignette you will need the suggested R package knitr
which in turn probably requires the system tool pandoc
:
sudo apt install pandoc
A simple example:
library("optparse")
parser <- OptionParser()
parser <- add_option(parser, c("-v", "--verbose"), action="store_true",
default=TRUE, help="Print extra output [default]")
parser <- add_option(parser, c("-q", "--quietly"), action="store_false",
dest="verbose", help="Print little output")
parser <- add_option(parser, c("-c", "--count"), type="integer", default=5,
help="Number of random normals to generate [default %default]",
metavar="number")
parse_args(parser, args = c("--quietly", "--count=15"))
## $help
## [1] FALSE
##
## $verbose
## [1] FALSE
##
## $count
## [1] 15
Note that the args
argument of parse_args
default is commandArgs(trailing=TRUE)
so it typically doesn’t need to be explicitly set if writing an Rscript.
One can also equivalently make options in a list:
library("optparse")
option_list <- list(
make_option(c("-v", "--verbose"), action="store_true", default=TRUE,
help="Print extra output [default]"),
make_option(c("-q", "--quietly"), action="store_false",
dest="verbose", help="Print little output"),
make_option(c("-c", "--count"), type="integer", default=5,
help="Number of random normals to generate [default %default]",
metavar="number")
)
parse_args(OptionParser(option_list=option_list), args = c("--verbose", "--count=11"))
## $verbose
## [1] TRUE
##
## $count
## [1] 11
##
## $help
## [1] FALSE
optparse
automatically creates a help option:
parse_args(parser, args = c("--help"))
Usage: %prog [options]
Options:
-h, --help
Show this help message and exit
-v, --verbose
Print extra output [default]
-q, --quietly
Print little output
-c NUMBER, --count=NUMBER
Number of random normals to generate [default 5]
Error in parse_args(parser, args = c("--help")) : help requested
Note by default when optparse::parse_args
sees a --help
flag it will first print out a usage message and then either throw an error in interactive use or call quit
in non-interactive use (i.e. when used within an Rscript called by a shell). To disable the error/quit set the argument print_help_and_exit
to FALSE
in parse_args
and to simply print out the usage string one can also use the function print_usage
.
optparse
has limited positional argument support, other command-line parsers for R such as argparse
have richer positional argument support:
parse_args(parser, args = c("-vc", "25", "75", "22"), positional_arguments = TRUE)
## $options
## $options$help
## [1] FALSE
##
## $options$verbose
## [1] TRUE
##
## $options$count
## [1] 25
##
##
## $args
## [1] "75" "22"
The function parse_args2
wraps parse_args
while setting positional_arguments=TRUE
and convert_hyphens_to_underscores=TRUE
:
parse_args2(parser, args = c("-vc", "25", "75", "22"))
## $options
## $options$help
## [1] FALSE
##
## $options$verbose
## [1] TRUE
##
## $options$count
## [1] 25
##
##
## $args
## [1] "75" "22"
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.