如何将命名列表列表组合到单个数据框或命名列表中?

时间:2014-04-14 18:48:18

标签: r list combinations

我有一个名单列表

t <- list(list(a=1,b=2,c=3), list(a=3, b=2, c=1), list(a=2, b=3, c=1))
[[1]]
[[1]]$a
[1] 1
[[1]]$b
[1] 2
[[1]]$c
[1] 3
[[2]]
[[2]]$a
[1] 3
[[2]]$b
[1] 2
[[2]]$c
[1] 1
[[3]]
[[3]]$a
[1] 2
[[3]]$b
[1] 3
[[3]]$c
[1] 1

我希望获得一个命名列表或数据框,如此

$a
[1] 1 3 2
$b
[1] 2 2 3
$c
[1] 3 1 1

目前,我正在循环查看命名列表列表,将每个值添加到新的命名列表中。我怎么能在一行中做到这一点?

1 个答案:

答案 0 :(得分:6)

也许以下其中一项适合您:

## As a data.frame
do.call(rbind, lapply(t, data.frame))
#   a b c
# 1 1 2 3
# 2 3 2 1
# 3 2 3 1

## As a list
as.list(do.call(rbind, lapply(t, data.frame)))
# $a
# [1] 1 3 2
# 
# $b
# [1] 2 2 3
#
# $c
# [1] 3 1 1