1 min read

The use of grepl()

Different from grep() which outputs the indices of the matched pattern, grepl() returns logical TRUE/FALSE values.

We look at the cyl variable in mtcars sets as example:

mtcars$cyl
##  [1] 6 6 4 6 8 6 8 4 4 6 6 8 8 8 8 8 8 4 4 4 4 8 8 8 8 4 4 4 8 6 8 4

To find out what entries are 6-cylinder engines, grep() will return the indices of the vector (and omit the rest):

grep(6, mtcars$cyl)
## [1]  1  2  4  6 10 11 30

whereas grepl() will return logical values for the entire vector.

grepl(6, mtcars$cyl)
##  [1]  TRUE  TRUE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE
## [13] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [25] FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE

The outputs vary in terms of the datatypes and lengths, which can be useful to serve difference processing scenarios.