【发布时间】:2018-05-09 21:18:50
【问题描述】:
假设我有一个列表,其元素具有属性,如下所示:
my_list <- list()
my_list[[1]] <- 1:10
my_list[[2]] <- 11:20
my_list[[3]] <- 21:30
attr(my_list[[1]], "att1") <- "a"
attr(my_list[[2]], "att1") <- "b"
attr(my_list[[3]], "att1") <- "c"
attr(my_list[[1]], "att2") <- "1"
attr(my_list[[2]], "att2") <- "2"
attr(my_list[[3]], "att2") <- "3"
现在,假设这个列表有数百个元素,我不知道列表中的哪个元素具有我想要的属性。但我知道我想要元素,比如 att1 == "b" 和 att2 == "2"(但我不知道它恰好对应于列表元素 2)。
在 R 中有没有办法查找列表中的哪些元素具有特定的属性组合?
【问题讨论】:
-
Filter(function(x) attr(x, "att1") == "b" & attr(x, "att2") == "2", my_list)?或者sapply,如果你想知道每个元素的真/假...顺便说一句,如果你把它放在一个表中,查找会更容易。 -
谢谢!这确实可以解决问题!我正在使用的包返回一堆交叉验证矩阵作为列表元素,其属性对应于调整参数——因此我正在寻找如何查找列表元素。
标签: r list attributes