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

时间:2019-01-22 19:33:22

标签: r list

这是一个基本的问题,由于某种原因,我无法弄清楚该如何正确处理。假设我有一个列表列表

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 个答案:

答案 0 :(得分:2)

我们可以使用pluck

library(tidyverse)
map(v, pluck, "a")
#[[1]]
#[1] 1

#[[2]]
# [1] 4

#[[3]]
# [1] 7

base R中的相应方法应该是

lapply(v, `[[`, "a")

答案 1 :(得分:1)

在基数R中,我们可以使用

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

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

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