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`

, where `NULL`

means to take
the first one.

### Usage

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

### Arguments

`arg` |
a character vector (of length one unless `several.ok`
is `TRUE` ) or `NULL` . |

`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
stopifnot(identical(center(x), center(x, "mean")),
identical(center(x, NULL), center(x, "mean")) )
## Allowing more than one match:
match.arg(c("gauss", "rect", "ep"),
c("gaussian", "epanechnikov", "rectangular", "triangular"),
several.ok = TRUE)

[Package

*base* version 2.5.0

Index]