require(purrr)
list <- list(
node = list(a = list(y = 1, t = 1), b = list(y = 1, t = 2)),
node = list(a = list(y = 1, t = 3), b = list(y = 1, t = 4)))
<
Here are some ideas using functions from purrr
. Thanks for the great suggestions from @cderv.
Here is the first one. The use of pluck
is similar to $
.
list %>% flatten() %>% transpose() %>% pluck("t")
$a
[1] 1
$b
[1] 2
$a
[1] 3
$b
[1] 4
Here is the second one.
list %>% flatten() %>% map("t")
$a
[1] 1
$b
[1] 2
$a
[1] 3
$b
[1] 4
Finally, if we want a vector, we can use map_dbl
if we know the elements in t
are all numeric.
list %>% flatten() %>% map_dbl("t")
a b a b
1 2 3 4