Case-insensitive match and pmatch functions, especially useful
in parsing user inputs, e.g. from command line.
imatch(x, table, ...)imatch and ipmatch returns matching indices, or
NA (by default) if the match failed.
matchv, imatchv and ipmatchv returns the matching
element in table, or NA if the match failed. Note that when
cases are different in x and table, the one in table
will be returned. This is especially useful for cases where user's input has
different cases as the internal options.
imatch and ipmatch works similar as match and
pmatch, except that they are case-insensitive.
matchv, imatchv and ipmatchv are shot-cuts to get the
matched value (therefore the ‘v’) if the match succeeded, or
NA if not. match(x, table) is equivalent to
table[match(x, table)]. See examples.
user.input <- c("hsv", "BvB")
user.input2 <- c("HS", "BV")
internal.options <- c("HSV", "FCB", "BVB", "FCN")
match(user.input, internal.options)
#> [1] NA NA
imatch(user.input, internal.options)
#> [1] 1 3
ipmatch(user.input, internal.options)
#> [1] 1 3
ipmatch(user.input2, internal.options)
#> [1] 1 3
matchv(user.input, internal.options)
#> [1] NA NA
matchv(tolower(user.input), tolower(internal.options))
#> [1] "hsv" "bvb"
imatchv(user.input, internal.options)
#> [1] "HSV" "BVB"
ipmatchv(user.input, internal.options)
#> [1] "HSV" "BVB"
ipmatchv(user.input2, internal.options)
#> [1] "HSV" "BVB"