Learn R Programming

Ecfun (version 0.3-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)

Value

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

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

Author

Spencer Graves

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

Examples

Run this code
##
## 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 
stopifnot(
all.equal(b., 2)
)
##
## 2.  return value 
##
bv <- rgrep(names(dd), colnames(mm)[5], value=TRUE)
# check 
stopifnot(
all.equal(bv, 'b')
)

Run the code above in your browser using DataLab