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)