2014-11-21 2 views
0

Предположим, у меня есть два списка:подмножество элементов в списке путем сопоставления часть строк

list1 <- list("aaa.bbb.txt", "ccc.dddd.txt", "e.ff.txt", "gg.hhh.txt") 
list2 <- list("ff","hhh") 

Я хочу Подмножество list1 к элементам, которые соответствуют с list2. В этом случае list1 будет содержать только эти два элемента: "e.ff.txt", "gg.hhh.txt". Благодаря!

ответ

3

Попробуйте

pat <- paste(list2,collapse="|") 
list1[sapply(list1, function(x) length(grep(pat,x))) >0] 
#[[1]] 
#[1] "e.ff.txt" 

#[[2]] 
#[1] "gg.hhh.txt" 

Или для этого примера, следующий код работает.

list1[grepl(pat, list1)] 
#[[1]] 
#[1] "e.ff.txt" 

#[[2]] 
#[1] "gg.hhh.txt" 
Смежные вопросы