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

如何从列表中获取特定的列表?

  •  1
  • Denis  · 技术社区  · 5 年前

    这是一个非常基本的问题,出于某种原因,我想不出如何解决这个问题。假设我有一张单子

    v <- list(
              list(a=1, b=2, c=3), 
              list(a=4, b=5, c=6), 
              list(a=7, b=8, c=9))
    

    如何列出所有名为“a”的元素的列表。也就是说,我想 list(1, 4, 7) 请求 a .

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

    我们可以使用 pluck

    library(tidyverse)
    map(v, pluck, "a")
    #[[1]]
    #[1] 1
    
    #[[2]]
    # [1] 4
    
    #[[3]]
    # [1] 7
    

    中的相应方法 base R 将是

    lapply(v, `[[`, "a")
    
        2
  •  1
  •   dww Jarretinha    5 年前

    在R基,我们可以使用

    unlist(v)[names(unlist(v))=="a"]
    

    或者,如果您不想使用 unlist 两次:

    (x <- unlist(v))[names(x)=="a"]