pmatch2 {Ecfun} | R Documentation |
Value matching or partial matching
Description
pmatch2
returns a list of the positions
of matches or partial matches of x
in
table
.
This does sloppy matching to find "Peter"
to match "Pete" only if "Pete" is not in
table
, and we want "John Peter" if
neither "Pete" nor "Peter" are in
table
.
Usage
pmatch2(x, table)
Arguments
x |
the values to be matched |
table |
the values to be matched against |
Details
1. nx <- length(x);
out <- vector(nx, "list");
names(out) <- x
2. for(ix in seq(length=nx))
:
3. xi <- which(x[ix] %in% table)
4. if(length(xi)<1)
xi <- grep(paste0('^', x[ix]), table)
.
5. if(length(xi)<1)xi <-
grep(x[ix], table)
.
6. out[[ix]] <- xi
Value
A list of integer vectors indicating the
positions in table
matching each element
of x
Author(s)
Spencer Graves
See Also
Examples
##
## 1. common examples
##
x2match <- c('Pete', 'Peter', 'Ma', 'Mo', 'Paul',
'Cardenas')
tbl <- c('Peter', 'Mary', 'Martha', 'John Paul', 'Peter',
'Cardenas', 'Cardenas')
x2mtchd <- pmatch2(x2match, tbl)
# answer
x2mtchd. <- list(Pete=c(1, 5), Peter=c(1, 5), Ma=2:3,
Mo=integer(0), Paul=4, Cardenas=6:7)
all.equal(x2mtchd, x2mtchd.)
##
## 2. strange cases that caused errors and are now warnings
##
huh <- pmatch2("(7", tbl)
# answer
huh. <- list("(7"=integer(0))
all.equal(huh, huh.)
[Package Ecfun version 0.3-2 Index]