gpt4 book ai didi

r - grep 使用具有多种模式的字符向量

转载 作者:行者123 更新时间:2023-12-03 04:32:45 25 4
gpt4 key购买 nike

我正在尝试使用 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 个匹配,这是不正确的,有什么建议吗?

最佳答案

除了 @Marek 关于不包含 fixed==TRUE 的评论之外,您还需要在正则表达式中不包含空格。它应该是“A1|A9|A6”

您还提到有很多模式。假设它们在一个向量中

toMatch <- c("A1", "A9", "A6")

然后您可以使用 pastecollapse = "|" 直接创建正则表达式。

matches <- unique (grep(paste(toMatch,collapse="|"), 
myfile$Letter, value=TRUE))

关于r - grep 使用具有多种模式的字符向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7597559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com