fromJSON + ldply:修复错误矩阵上的下标数量不正确

时间:2016-11-06 05:26:05

标签: r plyr jsonlite

我有一个具有这种结构的JSON:

{\"A\": [[\"x\", 0.2], [\"y\", 0.3], [\"z\", 0.3]], \"B\": [[\"x\", 0.2], [\"y\", 0.3]]} 

我正在尝试这样做:

library(jsonlite)
library(plyr)
my_data <- fromJSON(my_json_file, flatten = TRUE)
my_data <- ldply(my_data, rbind)

但是我收到了这个错误:

Error in output[rng, lcols[[i]]] <- matrices[[i]] : 
  incorrect number of subscripts on matrix

我尝试do.call(rbind, my_json_file)并且这样做了一些信息,因为ldply应该返回

V1 | V2 | V3
A  | x  | 0.2
A  | y  | 0.3
A  | z  | 0.3
B  | x  | 0.2
B  | y  | 0.3

do.call返回

V2 | V3
x  | 0.2
y  | 0.3
z  | 0.3
x  | 0.2
y  | 0.3

有没有办法强制ldply或使用do.call获得相同的结果?

1 个答案:

答案 0 :(得分:1)

@SymbolixAU在ldply不起作用时启动了解决方案

my_data <- do.call(rbind, lapply(fromJSON(my_json), data.frame))
my_data$id <- colnames(my_data)