如何在R中的任何地方匹配字符串?

时间:2015-08-10 05:22:09

标签: r

我有一个名为

的对象
 fruits<-c("apple","banana","pineapple","mango")

我有一个名为

的对象
 wanted.string<-c("app","ana")

我想将wanted.string中的字符串与水果中的字符串匹配(因此匹配这些字符串中的任何位置)并获得匹配的结果,即

 apple, banana, pineapple

3 个答案:

答案 0 :(得分:4)

#Paste everything together into a large OR statement
wnt <- paste0(wanted.string, collapse="|")
#Then see if any match
grep(wnt, fruits, value=TRUE)

## [1] "apple"     "banana"    "pineapple"

答案 1 :(得分:3)

另一个选项是来自str_detect的{​​{1}},它通过'string'和'pattern'进行矢量化。我们得到一个带stringr的逻辑向量,可用于对原始向量进行子集化。

str_detect

答案 2 :(得分:2)

grepsapply

unlist(sapply(wanted.string, function(ii) grep(ii, fruits, value=TRUE)))
#       app1        app2         ana 
#    "apple" "pineapple"    "banana"