Как получить конкретный список из списка списков? - PullRequest
0 голосов
/ 22 января 2019

Это такой основной вопрос, и по какой-то причине я не могу понять, как сделать это правильно. Предположим, у меня есть список списков

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 голосов
/ 22 января 2019

В базе R мы можем использовать

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

Или, если вы предпочитаете не использовать unlist дважды:

(x <- unlist(v))[names(x)=="a"]
0 голосов
/ 22 января 2019

Мы можем использовать pluck

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

#[[2]]
# [1] 4

#[[3]]
# [1] 7

Соответствующий метод в base R будет

lapply(v, `[[`, "a")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...