Learn R Programming

Ecfun (version 0.2-2)

rgrep: Reverse grep

Description

Find which pattern matches x.

Usage

rgrep(pattern, x, ignore.case = FALSE, perl = FALSE, 
  value = FALSE, fixed = FALSE, useBytes = FALSE, 
  invert = FALSE)

Arguments

pattern

a character vector of regular expressions to be matched to x

x

a character string or vector for which a matching regular expression is desired.

ignore.case, perl, value, fixed, useBytes, invert

as for grep

Value

an integer vector of indices of elements of pattern with a match in x.

Details

1. np <- length(pattern)

2. g. <- rep(NA, np)

3. for(i in seq(length=np)) g.[i] <- (length(grep(pattern[i], x))>0)

4. return(which(g.))

See Also

grep, pmatch

Examples

Run this code
# NOT RUN {
##
## 1.  return index 
##
dd <- data.frame(a = gl(3,4), b = gl(4,1,12)) # balanced 2-way
mm <- model.matrix(~ a + b, dd)

b. <- rgrep(names(dd), colnames(mm)[5])
# check 
# }
# NOT RUN {
all.equal(b., 2)
# }
# NOT RUN {
##
## 2.  return value 
##
bv <- rgrep(names(dd), colnames(mm)[5], value=TRUE)
# check 
# }
# NOT RUN {
all.equal(bv, 'b')
# }

Run the code above in your browser using DataLab