match.arg {base} | R Documentation

## Argument Verification Using Partial Matching

### Description

`match.arg` matches `arg` against a table of candidate values as specified by `choices`.

### Usage

    match.arg(arg, choices, several.ok = FALSE)

### Arguments

`arg` | a character string
`choices` | a character vector of candidate values
`several.ok` | logical specifying if `arg` should be allowed to have more than one element.

### Details

In the one-argument form `match.arg(arg)`, the choices are obtained from a default setting for the formal argument `arg` of the function from which `match.arg` was called.

Matching is done using `pmatch`, so `arg` may be abbreviated.

### Value

The unabbreviated version of the unique partial match if there is one; otherwise, an error is signalled if `several.ok` is false, as per default. When `several.ok` is true and there is more than one match, all unabbreviated versions of matches are returned.

### See Also

`pmatch`, `match.fun`, `match.call`.

### Examples

    require(stats)
    ## Extends the example for 'switch'
    center <- function(x, type = c("mean", "median", "trimmed")) {
      type <- match.arg(type)
      switch(type,
             mean = mean(x),
             median = median(x),
             trimmed = mean(x, trim = .1))
    }
    x <- rcauchy(10)
    center(x, "t")       # Works
    center(x, "med")     # Works
    try(center(x, "m"))  # Error

    ## Allowing more than one match:
    match.arg(c("gauss", "rect", "ep"),
              c("gaussian", "epanechnikov", "rectangular", "triangular"),
              several.ok = TRUE)

[Package base version 2.3.1 Index]