我有一个列表,例如:(仅限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
提前致谢!
答案 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, ...)
将获取此输出并将其减少为单个数据框。默认情况下,应保留名称。