【发布时间】:2011-11-27 16:39:19
【问题描述】:
我正在尝试使用grep 来测试字符串向量是否存在于另一个向量中,并输出存在的值(匹配模式)。
我有一个这样的数据框:
FirstName Letter
Alex A1
Alex A6
Alex A7
Bob A1
Chris A9
Chris A6
我在“字母”列中有一个字符串模式向量,例如:c("A1", "A9", "A6")。
我想检查“字母”列中是否存在模式向量中的任何字符串。如果是,我想要唯一值的输出。
问题是,我不知道如何将grep 与多个模式一起使用。我试过了:
matches <- unique (
grep("A1| A9 | A6", myfile$Letter, value=TRUE, fixed=TRUE)
)
但它给了我 0 个不正确的匹配项,有什么建议吗?
【问题讨论】:
-
你不能使用
fixed=TRUE因为你的模式是 true 正则表达式。 -
使用
match或%in%甚至==是比较精确匹配的唯一正确方法。正则表达式对于这样的任务是非常危险的,并且可能导致意想不到的结果。