match_param | R Documentation |
Much like base::match.arg()
with a few key differences:
Will not perform partial matching
Will not return error messages with ugly quotation marks
match_param(
param,
choices,
null = TRUE,
partial = getOption("mark.match_param.partial", FALSE),
multiple = FALSE,
simplify = TRUE
)
param |
The parameter |
choices |
The available choices; named lists will return the name (a character) for when matched to the value within the list element. A list of formula objects (preferred) retains the LHS of the formula as the return value when matched to the RHS of the formula. |
null |
If |
partial |
If |
multiple |
If |
simplify |
If |
Param matching for an argument
A single value from param
matched on choices
match_arg()
fruits <- function(x = c("apple", "banana", "orange")) {
match_param(x)
}
fruits() # apple
try(fruits("b")) # must be exact fruits("banana")
pfruits <- function(x = c("apple", "apricot", "banana")) {
match_param(x, partial = TRUE)
}
pfruits() # apple
try(pfruits("ap")) # matchParamMatchError
pfruits("app") # apple
afruits <- function(x = c("apple", "banana", "orange")) {
match_param(x, multiple = TRUE)
}
afruits() # apple, banana, orange
# can have multiple responses
how_much <- function(x = list(too_few = 0:2, ok = 3:5, too_many = 6:10)) {
match_param(x)
}
how_much(1)
how_much(3)
how_much(9)
# use a list of formulas instead
ls <- list(1L ~ 0:1, 2L, 3L ~ 3:5)
sapply(0:5, match_param, choices = ls)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.