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"
。謝謝!
的一部分假設我有兩個列表:子項通過匹配字符串
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"
。謝謝!
嘗試
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"