代码之家  ›  专栏  ›  技术社区  ›  cooldood3490

获取R中列表中最大列表的索引

  •  1
  • cooldood3490  · 技术社区  · 6 年前

    get the lengths of element of lists of list in R .

    一旦我们得到列表中元素的长度,我们如何得到最大列表的索引?

    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
    

    第一个列表共有9个元素,第二个列表共有11个元素,第三个列表共有3个元素。

    2 既然有,列表中的元素就最多。

    1 回复  |  直到 6 年前
        1
  •  2
  •   akrun    6 年前

    我们在公园里兜圈子 list 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
    

    如果必须考虑元素的总数,则通过 ('d') unlist 去拿那个

    l1 <- lengths(lapply(d, unlist))
    d[l1 == max(l1)]