【发布时间】:2021-06-03 04:44:15
【问题描述】:
我有一个列表,其中每个元素都是一个向量 ("l1") 和另一个列表,其中每个元素包含我要删除的 l1 的相应索引。用这个例子最容易描述
# create some lists in a structure like mine
set.seed(2021)
l1 <- list()
list_indices_to_remove <- list()
for(i in 1:3){
l1[[i]] <- rbinom(4, 10, .6)
list_indices_to_remove[[i]] <- sample(1:4, sample(1:2, 1))
}
l1 看起来像这样
[[1]]
[1] 7 5 6 7
[[2]]
[1] 5 6 6 6
[[3]]
[1] 7 6 4 3
对于每个元素,我想从向量中删除list_indices_to_remove中的那些索引
[[1]]
[1] 2 3
[[2]]
[1] 4
[[3]]
[1] 1 2
用一句话来说:我想删除l1[[1]]中向量的第二个和第三个元素,l1[[2]]中的第四个元素,...我可以循环执行此操作,但我需要这样做很多次,我希望能找到更快的解决方案。
我已经尝试了一些东西,这是一个
l1[which(l1 %in% list_indices_to_remove)] <- NULL
但这不会改变列表。提前谢谢你。
【问题讨论】: