Ho problemi con un JSON nidosissimo.JSON da record a frame di dati in R
Il formato è simile
{
"matches": [
{
"matchId": 1,
"region": "BR",
"participants": [
{
"participantId": 0,
"teamId": 200,
"stats": {
"winner": true,
"champLevel": 16,
"item0": 3128,
}
{
"matchId": 2,
"region": "BR",
"participants": [
{
"participantId": 0,
"teamId": 201,
"stats": {
"winner": false,
"champLevel": 18,
"item0": 3128,
"item1": 3157,
"item1": 3158,
}
Come si può vedere nella seconda partita il numero di elementi aumentato, ma nel frame di dati della prima riga avranno gli stessi collumns:
MatchId region ... stats.winner stats.champLevel stats.item0 stats.item1 stats.item2
1 BR TRUE 16 3128 1 BR
1 BR TRUE 16 3128 3157 3158
Vedere la prima riga è più piccola del secondo, quindi R riciclare i valori ....
Se si desidera ottenere i dati completi, è possibile prenderlo a: http://pastebin.com/HQDf2ase
Come analizzato il JSON per data.frame:
escludere dall'elenco gli elementi del JSON e convertirlo in un frame di dati
matchData.i <- lapply(json.matchData$matches, function(x){ unlist(x)})
trasformare in Data Frame
matchData <- do.call("rbind", matchData.i)
matchData <- as.data.frame(matchData)
Ma il dataframe è incasinato, perché alcuni campi dovrebbero essere NA ma sono pieni di wron valori g.