match(x, table, nomatch=NA) x %in% table
x
| the values to be matched. |
table
| the values to be matched against. |
nomatch
| the value to be returned in the case when no match is found. |
match
: If x[i]
is found to equal table[j]
then the value returned in the i
-th position of the return value is
j
. If no match is found, the value is nomatch
.
%in%
: A utility function, currently defined as
"%in%" <- function(x, y) match(x, y, nomatch = 0) > 0
allowing
an intuitive usage and returning a logical vector of length length(x)
.
pmatch
and charmatch
for (partial)
string matching, match.arg
, etc for function argument matching.## The intersection of two sets : intersect <- function(x, y) y[match(x, y, nomatch = 0)] intersect(1:10,7:20) 1:10 %in% c(1,3,5,9) sstr <- c("c","ab","B","bba","c","@","bla","a","Ba","%") sstr[sstr %in% c(letters,LETTERS)] "%w/o%" <- function(x,y) x[!x %in% y] #-- x without y (1:10) %w/o% c(3,7,12)