R匹配字符串的一部分与字符串的向量

时间:2014-10-08 19:53:29

标签: r string match

我有一个逗号分隔的字符类

A = "123,456,789"

我试图获得一个逻辑向量,用于字符数组中的某个项目存在于字符数组中。

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

我正在寻找大小为4(B的长度)的逻辑结果

[1] TRUE FALSE TRUE FALSE

对R来说相当新,所以任何帮助都会受到赞赏。提前谢谢。

2 个答案:

答案 0 :(得分:4)

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

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

另一种循环方法是将Vectorizegrepl一起使用。这在内部使用mapply

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

答案 1 :(得分:2)

您可以使用sapply和grepl的组合,返回逻辑匹配的

 sapply(B, grepl, x=A)