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.

getopt is an R package designed to be used with
Rscript to write “#!”-shebang scripts that accept short and
long flags/options. Many users will prefer using instead the package optparse which adds
extra features (automatically generated help option and usage, support
for default values, basic positional argument support).
To install the last version released on CRAN use the following command:
install.packages("getopt")
To install the development version use the following command:
install.packages("remotes")
remotes:install_github("trevorld/r-getopt")
An example Rscript using getopt with R 4.4+
(i.e. support for %||% and |>):
#!/path/to/Rscript
library('getopt')
# get options, using the spec as defined by the matrix
# fmt: skip
spec <- matrix(c(
'verbose', 'v', 2, "integer",
'help' , 'h', 0, "logical",
'count' , 'c', 1, "integer",
'mean' , 'm', 1, "double",
'sd' , 's', 1, "double"
), byrow = TRUE, ncol = 4L)
opt <- getopt(spec)
# if help was asked for print a friendly message and exit
if (isTRUE(opt$help)) {
getusage(spec) |> cat()
quit(status = 0)
}
# set reasonable defaults for options that were not specified
opt$mean <- opt$mean %||% 0
opt$sd <- opt$sd %||% 1
opt$count <- opt$count %||% 10L
opt$verbose <- opt$verbose %||% FALSE
# print some progress messages to stderr, if requested
if (opt$verbose) write("writing...", stderr())
# do some operation based on user input
rnorm(opt$count, mean = opt$mean, sd = opt$sd) |> cat(sep="\n")
An example Rscript using getopt for old versions of
R:
#!/path/to/Rscript
library('getopt')
# get options, using the spec as defined by the matrix
spec <- matrix(c(
'verbose', 'v', 2, "integer",
'help' , 'h', 0, "logical",
'count' , 'c', 1, "integer",
'mean' , 'm', 1, "double",
'sd' , 's', 1, "double"
), byrow = TRUE, ncol = 4L)
opt <- getopt(spec)
# if help was asked for print a friendly message and exit
if (!is.null(opt$help)) {
cat(getusage(spec))
quit(status = 0)
}
# set reasonable defaults for options that were not specified
if (is.null(opt$mean)) opt$mean <- 0
if (is.null(opt$sd)) opt$sd <- 1
if (is.null(opt$count)) opt$count <- 10L
if (is.null(opt$verbose)) opt$verbose <- FALSE
# print some progress messages to stderr, if requested
if (opt$verbose) write("writing...", stderr())
# do some operation based on user input
cat(rnorm(opt$count, mean = opt$mean, sd = opt$sd), sep = "\n")
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.