删除列表中出现在一个元素之前的元素,并使用R删除自身

时间:2016-03-11 10:03:21

标签: r list

我有一个元素列表(示例中的字母)

 (l <- list(letters[1:2], letters[2:3]))

# [[1]]    
# [1] "a" "b"    
# [[2]]   
# [1] "b" "c" 

And another elements 
(r <- letters[2])

# [1] "b"

我创建了一个函数,删除出现在一个元素和它自身之前的元素(这里是“b”)。

out = lapply(l, function(x) x[-c(1,which(x == "b"))])
Filter(length, out)

#[[1]]

#[1] "c"

现在我的问题是,如果我有一个元素列表r不仅是一个“b”,我怎么能循环所有列表:

for example :
  

r

[1] a
[2] b

我想得到这样的结果    [1] c

谢谢

干杯

1 个答案:

答案 0 :(得分:4)

我们可以使用%in%

 Filter(length, lapply(l, function(x) 
             x[-seq(tail(which(x %in% r),1))]))
 #[[1]]
 #[1] "c"

数据

r <- c('a', 'b')