在R中的数据框中使用正则表达式检测单词边界

9
我有一个名为all的数据框,其中包含一列因子,这些因子包括"word""nonword"和其他一些因子。我的目标是仅选择具有因子值"word"的行。
我的解决方案grep("\bword\b",all[,5])没有返回任何结果。
为什么单词边界没有被识别?

为什么不直接使用 all %>% filter(column %in% "word") - Nettle
1个回答

25

在 R 中,你需要两次使用 \

grep("\\bword\\b", all[5])

替代解决方案:

grep("^word$", all[5])

which(all[5] == "word")

1
你提供的两个解决方案都有效,谢谢。你知道为什么在这种情况下 "\bword\b" 不起作用吗? - Daniel Kislyuk
4
模式grep("^word$", ...)将匹配整个字符串,而不仅仅是单词...即使在这里它们没有区别。 - Arun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接