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.

optparse: Command line optional argument parser

CRAN Status Badge R-CMD-check Coverage Status RStudio CRAN mirror downloads Dependencies

optparse hex sticker

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")

examples

A simple example:

library("optparse")
parser <- OptionParser() |>
    add_option(c("-v", "--verbose"), action = "store_true",
               default = TRUE, help = "Print extra output [default]") |>
    add_option(c("-q", "--quietly"), action = "store_false",
               dest = "verbose", help = "Print little output") |>
    add_option(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.

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 print_help_and_exit = 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"

other R packages

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.