Борьба с удалением слов на основе шаблона (анализ текста в R) - PullRequest
1 голос
/ 27 марта 2020

Я новичок в анализе текста. На прошлой неделе я боролся с конкретной проблемой в R. Я пытаюсь выяснить, как удалить или заменить все варианты слова в строке. Например, если строка:

test <- c("development", "develop", "developing", "developer", "apples", "kiwi")

Я хочу, чтобы конечный результат был:

"apples", "kiwi"

Итак, в основном я пытаюсь выяснить, как удалить или заменить все слова, начинающиеся с «^ развиваются». Я попытался использовать str_remove_all в пакете stringr с помощью этого выражения:

str_remove_all(test, "^dev")

Но конечный результат был следующим:

"elopment", "elop", "eloping", "eloper", "apples", "kiwi"

Он удалял только те части слова, которые соответствовали начальному выражению "dev", тогда как я хочу удалить все слово, если оно соответствует началу "dev".

Спасибо!

Ответы [ 3 ]

1 голос
/ 27 марта 2020

Фильтр (функция (x)! Любая (grepl («развернуть», x)), тест)

0 голосов
/ 27 марта 2020

через stringr, вы можете сделать:

stringr::str_subset(test, "^dev", negate = TRUE)

0 голосов
/ 27 марта 2020

Используйте grep с инвертированием:

grep("^develop", test, invert = TRUE, value = TRUE)
## [1] "apples" "kiwi"  

или отмените grepl:

ok <- !grepl("^develop", test)
test[ok]

или удалите develop, а затем получите те элементы, которые не изменились:

test[sub("^develop", "", test) == test]
...