R 检查句子中是否有单词

R 检查句子中是否有单词,r,R,我的数据框中有一列包含如下句子: c("Animation", "Comedy", "Family") 如何检查句子中是否有“动画”等特殊单词?创建数据供我们使用: somedat <- c("Animation", "Comedy", "Family", "Animation2") 如果要获取位于列中的单词(或行号)的索引,请执行以下操作: grep(pattern="Animation", somedat) # returns 1 4 如果您希望将单词返回给您: grep(pat

我的数据框中有一列包含如下句子:

c("Animation", "Comedy", "Family")

如何检查句子中是否有“动画”等特殊单词?

创建数据供我们使用:

somedat <- c("Animation", "Comedy", "Family", "Animation2")
如果要获取位于列中的单词(或行号)的索引,请执行以下操作:

grep(pattern="Animation", somedat)
# returns 1 4
如果您希望将单词返回给您:

grep(pattern="Animation", somedat, value=T)
# returns [1] "Animation"  "Animation2"

grep
和%中的
%将在向量中找到字符串的实例。我知道前者支持正则表达式,但不确定后者是否支持%语句中的动画。这给出了一个逻辑向量。类似于
grep(paste0(c(“动画”、“喜剧”、“家庭”),collapse=“|”),
的精确匹配也可以通过
grep(pattern=“\\bAnimation\\b”,somedat)
获得。顺便提一下,问题是在一个句子中找到几个词,而不是一个词在一个词的向量中。你是对的,如果你喜欢,你也可以使用正则表达式匹配。我最初也这么想,但后来重新阅读OP的问题,他说得非常具体:我的数据框中有一列包含如下句子:
c(“动画”、“喜剧”、“家庭”)
,因此我必须调整我先前的假设,并给他最有可能对OP有用的内容
grep(pattern="Animation", somedat, value=T)
# returns [1] "Animation"  "Animation2"