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"