2014-10-08 77 views
2

我有一個逗號分隔的字符類[R匹配部分對字符串的矢量

A = "123,456,789" 

,我試圖獲得當字符類的項目之一存在性格上的一個邏輯向量陣列。

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

我尋找大小4(B的長度)的邏輯結果

[1] TRUE FALSE TRUE FALSE 

相當新至R所以任何幫助,將不勝感激。提前致謝。

回答

2

您可以使用sapply和grepl的組合,如果匹配

sapply(B, grepl, x=A) 
+0

我會用其他答案中的非循環方法 – DMT 2014-10-08 20:16:09

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