这是一个基本的问题,由于某种原因,我无法弄清楚该如何正确处理。假设我有一个列表列表
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
。
答案 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"]