我有一个元素列表(示例中的字母)
(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
谢谢
干杯
答案 0 :(得分:4)
我们可以使用%in%
Filter(length, lapply(l, function(x)
x[-seq(tail(which(x %in% r),1))]))
#[[1]]
#[1] "c"
r <- c('a', 'b')