R: Как игнорировать случай при использовании str_detect?

В пакете stringr содержатся хорошие строковые функции.

Для поиска строки (игнорируя регистр)

можно было бы использовать

stringr::str_detect('TOYOTA subaru',ignore.case('toyota'))

Это работает, но дает предупреждение

Используйте (fixed | coll | regex) (x, ignore_case = TRUE) вместо ignore.case(x)

Каков правильный способ его перезаписи?

Ответ 1

строка поиска должна быть внутри fixed функции и эта функция имеет действительный параметр ignore_case

str_detect('TOYOTA subaru', fixed('toyota', ignore_case=TRUE))

Ответ 2

Вы можете использовать regex (или fix как комментарии @lmo в зависимости от того, что вам нужно), чтобы сделать шаблон как подробный в? Модификаторах или? Str_detect (см. Инструкцию для параметра шаблона):

library(stringr)
str_detect('TOYOTA subaru', regex('toyota', ignore_case = T))
# [1] TRUE

Ответ 3

Вы можете использовать функцию base R grepl(), чтобы выполнить то же самое без вложенной функции. Он просто принимает ignore.case в качестве аргумента.

grepl("toyota", 'TOYOTA subaru', ignore.case = TRUE)

(Обратите внимание, что порядок первых двух аргументов (шаблон и строка) переключается между grepl и str_detect).