我有一个元素列表(示例中的字母)
(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"
现在我的问题是,如果我有一个元素列表,而不仅仅是一个“b”,我该如何循环所有列表:
for example :
r
[1] a
[2] b
我想要这样的结果 [1] c
谢谢
干杯
最佳答案
我们可以使用%in%
Filter(length, lapply(l, function(x)
x[-seq(tail(which(x %in% r),1))]))
#[[1]]
#[1] "c"
数据
r <- c('a', 'b')
关于r - 使用 R 删除列表中出现在一个元素及其自身之前的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35937190/