假设R中我们下面列出的名单,被称为A
:在R中,如何根据子列表元素的值选择列表中的元素?
A <- list();
for (i in c(1:1000)) {
A[[i]] <- list(sample(LETTERS, 1, T), runif(1, 1, 1000))
}
使得对i
的A
每个元素,A[[i]][[1]]
将是随机分配的信A[[i]][[2]]
将是随机分配的数量1至1000.
既然如此,有没有一种方法,最好是没有循环来识别A
的哪个元素j
包含第二个元素大于500的列表?即这样A[[j]][[2]] > 500
?
如果我们使用数据帧,我们可以使用函数which
。但我不明白如何通过列表清单来实现这一目标。
如果你正在为列表子集创建索引,你可以直接过滤:'Filter(function(x){x [[2]]> 500},A)' – alistaire