努力根据模式删除单词(R 中的文本分析)

Struggling with removing words based on pattern (text analysis in R)

我是文本分析新手。上周我一直在努力解决 R 中的一个特定问题。我想弄清楚如何删除或替换字符串中某个单词的所有变体。例如,如果字符串是:

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

我希望最终输出为:

"apples", "kiwi"

所以,基本上,我想弄清楚如何删除或替换所有以“^develop”开头的单词。我尝试使用以下表达式在 stringr 包中使用 str_remove_all:

str_remove_all(test, "^dev")

但最终结果是这样的:

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

它只删除了与开头表达式 "dev" 匹配的部分单词,而如果它与 "dev" 的开头匹配,我想删除整个单词。

谢谢!

将 grep 与反转一起使用:

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

或否定grepl:

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

或删除develop然后检索那些没有改变的元素:

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

通过stringr,您可以:

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

过滤器(函数(x)!任何(grepl("develop",x)),测试)