从子列表列表创建数据框
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, ...)
将获取此输出并将其缩减为单个数据帧。默认情况下,应保留名称。
我有一个列表,例如:(只有 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, ...)
将获取此输出并将其缩减为单个数据帧。默认情况下,应保留名称。