使用R语言,将字符串的一部分与字符串向量进行匹配

4
我有一个逗号分隔的字符类。
A = "123,456,789"

我正在尝试获得一个逻辑向量,以判断字符数组中是否存在字符类中的任一项。

B <- as.array(c("456", "135", "789", "111"))

我正在寻找大小为4的逻辑结果(B的长度)。
[1] TRUE FALSE TRUE FALSE

我对R语言很新,希望能得到帮助。提前感谢。

2个回答

4
您可以使用sapply和grepl的组合,它返回一个逻辑值,如果匹配则为TRUE。
 sapply(B, grepl, x=A)

我会选择其他答案中的非循环方法。 - DMT

4

由于您的比较向量是逗号分隔的,因此可以使用此方法作为非循环方法。

B %in% strsplit(A, ",")[[1]]
# [1]  TRUE FALSE  TRUE FALSE

另一种循环方法是使用 greplVectorize 结合。这个方法在内部使用 mapply

Vectorize(grepl, USE.NAMES = FALSE)(B, A)
# [1]  TRUE FALSE  TRUE FALSE

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