gpt4 book ai didi

r - 匹配多个模式

转载 作者:行者123 更新时间:2023-12-03 11:46:01 26 4
gpt4 key购买 nike

我想看看,如果"001""100""000"出现在 0 的 4 个字符的字符串中和 1 .例如,一个 4 个字符的字符串可能类似于 "1100""0010""1001""1111" .如何使用单个命令匹配字符串中的多个字符串?

我知道 grep 可用于模式匹配,但使用 grep,我一次只能检查一个字符串。我想知道是否可以将多个字符串与其他命令或 grep 本身一起使用。

最佳答案

是的你可以。 |grep模式与 or 的含义相同.因此,您可以使用 "001|100|000" 来测试您的模式。作为你的模式。同时,grep是矢量化的,因此所有这些都可以一步完成:

x <- c("1100", "0010", "1001", "1111")
pattern <- "001|100|000"

grep(pattern, x)
[1] 1 2 3

这将返回您的哪些向量包含匹配模式的索引(在本例中为前三个。)

有时,有一个逻辑向量会更方便,告诉您向量中的哪些元素是匹配的。那么你可以使用 grepl :
grepl(pattern, x)
[1] TRUE TRUE TRUE FALSE

?regex有关 R 中正则表达式的帮助。

编辑:
为了避免手动创建模式,我们可以使用 paste :
myValues <- c("001", "100", "000")
pattern <- paste(myValues, collapse = "|")

关于r - 匹配多个模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6947587/

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