fromJSON + ldply: исправить ошибку, указав неверное количество индексов на матрице

У меня есть 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 ответ

Решение

Как @SymbolixAU начал решение, когда ldply не работает

my_data <- do.call(rbind, lapply(fromJSON(my_json), data.frame))
my_data$id <- colnames(my_data)
Другие вопросы по тегам