Страницы

Поиск по вопросам

среда, 9 января 2019 г.

регистр слов в R

Есть вектор с словами
# текст text <- c("R is a very essential tool for data analysis. While it is regarded as domain specific, it is a very complete programming language. Almost certainly, many people who would benefit from using R, do not use it") # разбиваю текст на вектор сo словами с пом. пакета stringr text <- unlist( stringr::str_match_all(text , '\\w+\\b') )

text [1] "R" "is" "a" "very" "essential" "tool" "for" [8] "data" "analysis" "While" "it" "is" "regarded" "as" [15] "domain" "specific" "it" "is" "a" "very" "complete" [22] "programming" "language" "Almost" "certainly" "many" "people" "who" [29] "would" "benefit" "from" "using" "R" "do" "not" [36] "use" "it"
Я хочу найти в нем слово "using"
text[text=="using"] [1] "using"
все нормально, все находит но если немножко изменить регистр
text[text=="Using"] character(0)
то слово найти уже не получиться
Вопрос как сделать поиск слов не чувствительным к регистру?


Ответ

Можно использовать функцию grep
grep("Using",text,ignore.case=TRUE,value=TRUE)
ignore.case=TRUE- игнор регистра
value=TRUE - Возврат значения из вектора, а не позиции найденного слова
UPD
grep будет искать вхождения. Поэтому поиск "it" вернет не совсем верный результат:
grep("it",text,ignore.case=TRUE,value=T,useBytes = T)
[1] "it" "it" "benefit" "it"
в этом случае функция regexpr отработает лучше:
match<-regexpr("IT$",text,ignore.case=TRUE) text[match==1]
[1] "it" "it" "it"

Комментариев нет:

Отправить комментарий