获取R中列表列表中最大列表的索引
Get the index of the largest list in a list of list in R
这个问题基于另一个问题:。
一旦我们得到lists of lists中元素的长度,我们如何得到最大列表的索引?
我的列表 d
看起来像:
d <- list( list(level = c(1), x = c(10,20,30,40), y = c(55,44,33,22)),
list(level = c(1), x = c(50,70,23,53, 43), y = c(80,23,54,30, 43)),
list(level = c(1), x = c(30), y = c(90)))
这是一个可视化表示
[[1]]
[[1]]$level
[1] 1
[[1]]$x
[1] 10 20 30 40
[[1]]$y
[1] 55 44 33 22
[[2]]
[[2]]$level
[1] 1
[[2]]$x
[1] 50 70 23 53 43
[[2]]$y
[1] 80 23 54 30 43
[[3]]
[[3]]$level
[1] 1
[[3]]$x
[1] 30
[[3]]$y
[1] 90
第一个lists列表共有9个元素,第二个lists列表共有11个元素,第三个lists列表有3个元素。
我正在寻找将 return 索引 2
的命令,因为它的列表列表包含最多的元素。
我们遍历 list
,提取 'x' 或 'y' 组件并获取它的 lengths
,使用它来创建用于过滤的逻辑索引lst
l1 <- lengths(sapply(d, `[`, 'x'))
d[l1== max(l1)]
#[[1]]
#[[1]]$level
#[1] 1
#[[1]]$x
#[1] 50 70 23 53 43
#[[1]]$y
#[1] 80 23 54 30 43
如果这必须考虑元素总数,循环遍历 list
('d') unlist
并得到 lengths
l1 <- lengths(lapply(d, unlist))
d[l1 == max(l1)]
这个问题基于另一个问题:
一旦我们得到lists of lists中元素的长度,我们如何得到最大列表的索引?
我的列表 d
看起来像:
d <- list( list(level = c(1), x = c(10,20,30,40), y = c(55,44,33,22)),
list(level = c(1), x = c(50,70,23,53, 43), y = c(80,23,54,30, 43)),
list(level = c(1), x = c(30), y = c(90)))
这是一个可视化表示
[[1]]
[[1]]$level
[1] 1
[[1]]$x
[1] 10 20 30 40
[[1]]$y
[1] 55 44 33 22
[[2]]
[[2]]$level
[1] 1
[[2]]$x
[1] 50 70 23 53 43
[[2]]$y
[1] 80 23 54 30 43
[[3]]
[[3]]$level
[1] 1
[[3]]$x
[1] 30
[[3]]$y
[1] 90
第一个lists列表共有9个元素,第二个lists列表共有11个元素,第三个lists列表有3个元素。
我正在寻找将 return 索引 2
的命令,因为它的列表列表包含最多的元素。
我们遍历 list
,提取 'x' 或 'y' 组件并获取它的 lengths
,使用它来创建用于过滤的逻辑索引lst
l1 <- lengths(sapply(d, `[`, 'x'))
d[l1== max(l1)]
#[[1]]
#[[1]]$level
#[1] 1
#[[1]]$x
#[1] 50 70 23 53 43
#[[1]]$y
#[1] 80 23 54 30 43
如果这必须考虑元素总数,循环遍历 list
('d') unlist
并得到 lengths
l1 <- lengths(lapply(d, unlist))
d[l1 == max(l1)]