私はRで新しいループを使い、Jsonからdata.frameへ変換することもできます。複雑なJSONファイルとファイルのループからdata.frameを作成する方法
私はこのようなJSONファイル内のデータがあります。
{
"players": {
"111111": {
"tLastEvent": 1432523322.429,
"tActive": 30793.195000172,
"tSocial": 1915.0230002403,
"nBlockBreak": 2315,
"nBlockPlace": 3051,
"sMove": 141554.58326606,
"loc": {
"w": "111111",
"x": 222222,
"y": 222222,
"z": 2222222
},
"social": {
"22222": 42.579999923706,
"333333": 2318.8910028934,
"44444": 440.19000005722,
"55555": 5417.4040002823,
"66666": 913.04000043869,
"7777": 1737.2639997005,
"88888": 419.68400025368,
"6666666": 972.16700005531,
"999999": 241.88300061226
}
}
は現在、私はここからいくつかの良いアイデアを持って、私はその結果私としてこれまでのところ
origininfo<-fromJSON("stats_100_players.json")
socialpl<-origininfo$players[[1]]$tSocial
socialinfo <- as.data.frame(lapply(socialpl,rbind))
colnames(socialinfo, prefix = "social")
を得ましたその列に対応する小さなものを入手してください:
もちろん、私はより多くの選手がいて、構造は同じですが、どうすればすべてを崩壊させるべきですか?
他の質問があります。他の変数を追加するにはどうすればよいですか?どのように私はこれがすべて同じ構造を有している(コードを毎回記述することなく、30個のファイルに対して行うことができ、事前に
おかげ
編集1:?。
答えで関数の場合:
{
"players": {
"209": {
"tLastEvent": 1428843834.06,
"tActive": 38087.053002357,
"tSocial": 12595.439997435,
"nBlockBreak": 1203,
"nBlockPlace": 1259,
"sMove": 159226.12087558,
"loc": {
"w": "279576",
"x": -150.46255768861,
"y": 105.531226699,
"z": 11111
},
"social": {
"279578": 4131.6009998322,
"279581": 578.5170006752,
"279579": 104.48099970818,
"279586": 194.46699929237,
"279592": 1223.5819990635,
"279594": 657.69799971581,
"279738": 979.95199990273,
"279740": 3092.1240000725,
"279959": 114.17499995232,
"282352": 6.5269999504089,
"282354": 454.35900020599,
"283245": 21.192000150681,
"283257": 185.67299985886,
"283262": 198.18899941444,
"283280": 33.197999954224,
"284033": 200.12299990654,
"284035": 419.58199977875
}
},
"210": {
"tLastEvent": 1429132071.012,
"tActive": 88717.513002872,
"tSocial": 10737.395000458,
"nBlockBreak": 23681,
"nBlockPlace": 20924,
"sMove": 106778.98294399,
"loc": {
"w": "2222",
"x": -1693.8889200061,
"y": 71,
"z": 1111
},
"social": {
"279577": 4131.6009998322,
"279579": 271.47599959373,
"279959": 4425.5970008373,
"279988": 1.0309998989105,
"279738": 325.50400018692,
"279740": 1133.4730000496,
"280310": 1.0169999599457,
"282301": 1.0130000114441,
"282354": 415.23199987411,
"283257": 1.0079998970032,
"284033": 20.141000270844,
"284035": 10.302000045776
}
},
"211": {
"tLastEvent": 1428688172,
"tActive": 1059.9219996929,
"tSocial": 375.95699930191,
"nBlockBreak": 219,
"nBlockPlace": 6,
"sMove": 883.21344060341,
"loc": {
"w": "279576",
"x": -130.9778811327,
"y": 81,
"z": 111111
},
"social": {
"279578": 271.47599959373,
"279577": 104.48099970818
}
},
"212": {
"tLastEvent": 1428254467.317,
"tActive": 2135.6659991741,
"tSocial": 659.75200080872,
"nBlockBreak": 40,
"nBlockPlace": 20,
"sMove": 4789.0751244105,
"loc": {
"w": "22222",
"x": 1269.528314042,
"y": 72,
"z": 1111111
},
"social": {
"279577": 578.5170006752,
"279592": 81.235000133514
}
}
}
}
こんにちは@ParFait本当にありがとうございました。本当に本当にdata.frameに役立ちました。私はlapplyにのみ問題がある、それは問題があり、デバッグする必要があるように見える**エラー(function(...、row.names = NULL、check.rows = FALSE、check.names = TRUE : 引数の行数が異なることを暗示します。9,1,0 ** – GeorgeMeSa
ディレクトリ内のすべてのプレーヤーjsonファイルが実際に正確な構造であるかどうかを慎重にチェックします。他のプレイヤーでない.jsonがディレクトリにある場合は、それらを別のフォルダに移動します。 jsonparse fctの中で 'print(origininfo)'を試して、それぞれのjsonの内容を見て、構造を決めるものを特定することもできます。 – Parfait
ファイルの実行中ですが、同じファイル内の他のプレイヤーに問題があります。データフレームには異なる名前が付けられますが、残りのプレイヤーには同じ値が割り当てられます。たとえば以下のようになります。 「1」、「277947」、1434767680.747,13653.170000076、 「2」、「277971」、1434767680.747,13653.170000076、 「3」、 、 "277972"、1434767680.747,13653.170000076、 "4"、 "278022"、1434767680.747,13653.170000076'私は関数を変更しようとしましたが、行にエラーが発生しました。もう一度おねがいします@Parfait – GeorgeMeSa