match.arg                package:base                R Documentation

_A_r_g_u_m_e_n_t _V_e_r_i_f_i_c_a_t_i_o_n _U_s_i_n_g _P_a_r_t_i_a_l _M_a_t_c_h_i_n_g

_D_e_s_c_r_i_p_t_i_o_n:

     'match.arg' matches 'arg' against a table of candidate values as
     specified by 'choices', where 'NULL' means to take the first one.

_U_s_a_g_e:

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

_A_r_g_u_m_e_n_t_s:

     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.

_D_e_t_a_i_l_s:

     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.

_V_a_l_u_e:

     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.

_S_e_e _A_l_s_o:

     'pmatch', 'match.fun', 'match.call'.

_E_x_a_m_p_l_e_s:

     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)

