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

match pmatch grep matchName

### 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)

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)