从子列表列表创建数据框

Create data frame from list of sublists

我有一个列表,例如:(只有 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

提前致谢!

如果我没理解错的话,这应该可以做你想做的,不需要任何额外的库。

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 和 return 数据框列表的每个元素,每个元素一行。 do.call(rbind, ...) 将获取此输出并将其缩减为单个数据帧。默认情况下,应保留名称。