我有一个数据框,其中参与者的ID作为第一列,他们的响应作为json数组作为第二列。 因此,它基本上是一个包含240个观察值的数据帧:240个参与者代码,以及每个观察值中具有13个响应的240个数组,每个数组都可以转换为3X10数组 看起来像这样:
我使用jsonlite::fromJSON
将json转换为数据帧,结果得到了data.frames列表(为简化起见,简称:)
[[1]]
case_n d1 d2
1 13 0 100
2 12 100 0
3 11 0 100
[[2]]
case_n d1 d2
1 12 50 50
2 8 50 50
3 3 50 50
[[3]]
case_n d1 d2
1 11 50 50
2 7 50 50
3 13 50 50
我知道可以将它们合并到一个包含所有数据帧的大型数据帧中,例如使用plyr :: ldply
df <- ldply(converted_json, data.frame)
如何将扩展的df
与初始participant.code
正确合并?
所以想要的结果将是类似的
partcode case_n d1 d2
8pdpaqyv 11 50 50
8pdpaqyv 7 50 50
8pdpaqyv 13 50 50
3q8o3mry 11 50 50
3q8o3mry 7 50 50
3q8o3mry 13 50 50
1kueczzz 11 50 50
1kueczzz 7 50 50
1kueczzz 13 50 50
更新:该任务与此question有点不同,因为我还需要存储来自初始数据的ID。
答案 0 :(得分:1)
dplyr::bind_rows
应该执行您想要的操作(它绑定列表元素)。您必须为.id
传递附加参数。要创建此.id
,您必须命名列表元素。
# Name list elements
names(converted_json) <- dataOriginal$participant.code
# bind rows and add .id
library(dplyr)
bind_rows(converted_json, .id = "partcode")