匹配两个单词列表并返回匹配的单词

时间:2016-09-06 07:19:57

标签: r match

我想将字符串列表循环到另一个列表

cutter_Ch <- c('happy','birthday','Lucia') 
pos <- c('Lucia','today')

我能做到的一种方式是用lapply

pos.matches = lapply(cutter_Ch, pmatch, pos)

[[1]]
[1] NA

[[2]]
[1] NA

[[3]]
[1] 1

但是,我希望函数返回匹配的字符串而不是NA和匹配的次数,如此

[[1]]
[1] NA

[[2]]
[1] NA

[[3]]
[1] Lucia

1 个答案:

答案 0 :(得分:1)

我们需要使用索引来对'pos'

进行子集化
lapply(cutter_Ch, function(x) pos[pmatch(x, pos)])

目前尚不清楚这个例子是否是更复杂的简化版本。无论如何,使用str_extract我们可以在vector

中获得相同的输出
library(stringr)
str_extract(cutter_Ch, paste(pos, collapse="|"))
#[1] NA      NA      "Lucia"