从子列表列表中创建数据框

时间:2016-11-22 16:44:20

标签: r list dataframe sublist

我有一个列表,例如:(仅限158个子列表)

> adjlist
$innocent
$innocent$competence
[1] 4.1

$innocent$desirable
[1] 4.68

$innocent$masculinity
[1] 2.69

$innocent$warmth
[1] 5.26


$enthusiastic
$enthusiastic$competence
[1] 5.21

$enthusiastic$desirable
[1] 5.81

$enthusiastic$masculinity
[1] 3.93

$enthusiastic$warmth
[1] 5.64

并希望将其转换为数据框,例如:(我手动创建了这个)

             competence masculinity desirable warmth
innocent           4.10        2.69      4.68   5.26
enthusiastic       5.21        3.93      5.81   5.64

提前致谢!

1 个答案:

答案 0 :(得分:4)

如果我理解正确,这应该做你想要的,没有任何额外的库。

res <- do.call(rbind, Map(data.frame, adjlist))
class(res)      # "data.frame"
rownames(res)   # "innocent", "enthusiastic"
colnames(res)   # "competence", "desirable", "masculinity", "warmth"

Map(data.frame, adjlist)会将data.frame应用于adjlist的每个元素,并返回一个数据框列表,每个数据框都有一行。 do.call(rbind, ...)将获取此输出并将其减少为单个数据框。默认情况下,应保留名称。