2016-09-06 84 views
1

我要循環到另一個列表匹配單詞的兩個列表,並通過字符串列表返回匹配的話

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

我們需要使用索引子集「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" 
相關問題