r - 使用 R 删除列表中出现在一个元素及其自身之前的元素

标签 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"

现在我的问题是,如果我有一个元素列表,而不仅仅是一个“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/

相关文章:

r - NaN 和 Inf 以及 R 中的 NULL 和 NA 有什么区别?

r - 如何删除 .png 周围奇怪的白边(用 r、ggplot 绘制)?

c - C 中的链表和二进制数据

java - 检查号码是否在号码列表中

list - 从不可变列表中获取 "remove"一个元素的惯用 Scala 方法是什么?

r - R 中的新客户或老客户

r - 如何使 Flextable 中的数字字段为空白

c++ - STL列表异常

r - 第一列到最后一列的grepl : is this the most efficient

javascript - Alfresco:Javascript 数据列表创建