add_argument | R Documentation |
This function adds an argument to an arg.parser
object and returns
the modified object.
add_argument(
parser,
arg,
help,
default = NULL,
type = NULL,
nargs = NULL,
flag = NULL,
short = NULL
)
parser |
an |
arg |
argument name (use no prefix for positional arguments,
|
help |
help description for the argument |
default |
default value for the argument [default: NA] |
type |
variable type of the argument (which can be inferred from
|
nargs |
number of argument values (which can be inferred from
|
flag |
whether argument is a flag (and does not consume a value) [default: FALSE]; during argument parsing, a flag argument is FALSE by default if it is not set |
short |
short-form for flags and positional arguments; short-forms can be assigned automatically based on the first character of the argument name, unless a conflict arises with an existing short-form; to avoid conflicts, add the argument as early as possible |
This function supports multiple arguments in a vector. To ensure that the
argument variable type is set correctly, either specify type
directly
or supply default
argument values as a list.
Custom types are supported by defining a new class and a S4 method for
coerce
, see the examples section.
an arg.parser
object with the argument added
Dashes -
that occur in the stem of the argument names
(e.g. –argument-name) will be converted to underscores _
(e.g. argument_name) in the name of the corresponding variable.
p <- arg_parser("A text file modifying program")
# Add a positional argument
p <- add_argument(p, "input", help="input file")
# Add an optional argument
p <- add_argument(p, "--output", help="output file", default="output.txt")
# Add a flag
p <- add_argument(p, "--append", help="append to file", flag=TRUE)
# Add multiple arguments together
p <- add_argument(p,
c("ref", "--date", "--sort"),
help = c("reference file", "date stamp to use", "sort lines"),
flag = c(FALSE, FALSE, TRUE))
# Print the help message
print(p)
# Example of custom type, using the example from pythons argparse
setClass("perfectSquare")
setMethod("coerce", c(from = "ANY", to = "perfectSquare"),
function(from, to) {
from <- as.numeric(from)
if (!all.equal(from, as.integer(from))) {
stop("Type error: ", from, " is not an integer!")
}
sqt <- sqrt(from)
if (sqt != as.integer(sqt)) {
stop("Type error: ", from, " is not a perfect square!")
}
from
}
)
p2 <- arg_parser("Perfect square checker")
p2 <- add_argument(p2, arg = c("--perfect-square"),
help = "A perfect square integer",
type = "perfectSquare")
parse_args(p2, c("--perfect-square", 144))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.