stringr package provides good string functions.
To search for a string (ignoring case)
one could use
stringr::str_detect('TOYOTA subaru',ignore.case('toyota'))
This works but gives warning
Please use (fixed|coll|regex)(x, ignore_case = TRUE) instead of ignore.case(x)
What is the right way of rewriting it?
You can use regex
(or fix
as @lmo's comments depending on what you need) function to make the pattern as detailed in ?modifiers or ?str_detect (see the instruction for pattern parameter):
library(stringr)
str_detect('TOYOTA subaru', regex('toyota', ignore_case = T))
# [1] TRUE
the search string must be inside function fixed
and that function has valid parameter ignore_case
str_detect('TOYOTA subaru', fixed('toyota', ignore_case=TRUE))
You can use the base R function grepl()
to accomplish the same thing without a nested function. It simply accepts ignore.case
as an argument.
grepl("toyota", 'TOYOTA subaru', ignore.case = TRUE)
(Note that the order of the first two arguments (pattern and string) are switched between grepl
and str_detect
).
来源:https://stackoverflow.com/questions/44530029/r-how-to-ignore-case-when-using-str-detect