#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) то слово найти уже не получиться Вопрос как сделать поиск слов не чувствительным к регистру?
Ответы
Ответ 1
Можно использовать функцию 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"Ответ 2
Достаточно привести слова в векторе к одному регистру: text <- tolower(text)
Комментариев нет:
Отправить комментарий