Convenience function for calling grep.
like.Rd
Intended for use in i
in [.data.table
, i.e., for subsetting/filtering.
Syntax should be familiar to SQL users, with interpretation as regex.
Usage
like(vector, pattern, ignore.case = FALSE, fixed = FALSE, perl = FALSE)
vector %like% pattern
vector %ilike% pattern
vector %flike% pattern
vector %plike% pattern
Details
Internally, like
is essentially a wrapper around base::grepl
, except that it is smarter about handling factor
input (base::grep
uses slow as.character
conversion).
Examples
DT = data.table(Name=c("Mary","George","Martha"), Salary=c(2,3,4))
DT[Name %like% "^Mar"]
#> Name Salary
#> <char> <num>
#> 1: Mary 2
#> 2: Martha 4
DT[Name %ilike% "mar"]
#> Name Salary
#> <char> <num>
#> 1: Mary 2
#> 2: Martha 4
DT[Name %flike% "Mar"]
#> Name Salary
#> <char> <num>
#> 1: Mary 2
#> 2: Martha 4
DT[Name %plike% "(?=Ma)(?=.*y)"]
#> Name Salary
#> <char> <num>
#> 1: Mary 2