This is equivalent to base::match.arg() with a few differences:

  • Partial matches trigger an error.

  • Error messages are a bit more informative and obey the tidyverse standards.

arg_match(arg, values = NULL)

Arguments

arg

A symbol referring to an argument accepting strings.

values

The possible values that arg can take. If NULL, the values are taken from the function definition of the caller frame.

Value

The string supplied to arg.

Examples

fn <- function(x = c("foo", "bar")) arg_match(x) fn("bar")
#> [1] "bar"
# This would throw an informative error if run: # fn("b") # fn("baz")