私のプロジェクトには、json 形式に変換したい R データ フレームがあります。
私のデータ フレームは「df_sales」です。
df_sales
2 4 5 7 8 9 10 11 12
2004 40400 0 226100 238556.4 217044.8 2243085.4 118754.50 193740 181075
2005 0 0 0 0.0 60000.0 0.0 0.00 0 0
2006 0 0 0 0.0 0.0 0.0 4.75 0 0
2007 0 8100 0 162400.0 1500.0 181860.9 450.00 0 73100
2008 0 0 0 0.0 10000.0 1000.0 0.00 0 0
そして、私の df_sales データ フレームの dput 出力:
dput(df_sales)
structure(list(`2` = c(40400, 0, 0, 0, 0), `4` = c(0, 0, 0, 8100,
0), `5` = c(226100, 0, 0, 0, 0), `7` = c(238556.35, 0, 0, 162400,
0), `8` = c(217044.75, 60000, 0, 1500, 10000), `9` = c(2243085.4,
0, 0, 181860.85, 1000), `10` = c(118754.5, 0, 4.75, 450, 0),
`11` = c(193740, 0, 0, 0, 0), `12` = c(181075, 0, 0, 73100,
0)), .Names = c("2", "4", "5", "7", "8", "9", "10", "11",
"12"), row.names = c("2004", "2005", "2006", "2007", "2008"), class = "data.frame")
df_sales データ フレームをカスタム json 形式に変換したいと思います。
{
"series":[
{
"year":"2004",
"month":{
"2":40400,
"4":0,
"5":226100,
"7":238556.35,
"8":217044.75,
"9":2243085.4,
"10":118754.5,
"11":193740,
"12":181075
}
},
{
"year":"2005",
"month":{
"2":0,
"4":0,
"5":0,
"7":0,
"8":60000,
"9":0,
"10":0,
"11":0,
"12":0
}
},
{
"year":"2006",
"month":{
"2":0,
"4":0,
"5":0,
"7":0,
"8":0,
"9":0,
"10":4.75,
"11":0,
"12":0
}
},
{
"year":"2007",
"month":{
"2":0,
"4":8100,
"5":0,
"7":162400,
"8":1500,
"9":181860.85,
"10":450,
"11":0,
"12":73100
}
},
{
"year":"2008",
"month":{
"2":0,
"4":0,
"5":0,
"7":0,
"8":10000,
"9":1000,
"10":0,
"11":0,
"12":0
}
}
]
}
jsonliteパッケージとrjsonを使用して "df_sales" を変換していますが、これらのパッケージではこの構造を取得できません。
R apply()、lapply()、および sapply() 関数を使用して、カスタム json を取得しようとしました。
toJSON(list(series=list(df_sales),MARGIN=1,FUN=function(r){
sapply(r,FUN=function(i){list(i)})
}))), pretty = TRUE, auto_unbox = TRUE)
しかし、私はこの結果を得るだけです:
{
"series": [
{
"2004": {
"2": 40400,
"4": 0,
"5": 226100,
"7": 238556.35,
"8": 217044.75,
"9": 2243085.4,
"10": 118754.5,
"11": 193740,
"12": 181075
},
"2005": {
"2": 0,
"4": 0,
"5": 0,
"7": 0,
"8": 60000,
"9": 0,
"10": 0,
"11": 0,
"12": 0
},
"2006": {
"2": 0,
"4": 0,
"5": 0,
"7": 0,
"8": 0,
"9": 0,
"10": 4.75,
"11": 0,
"12": 0
},
"2007": {
"2": 0,
"4": 8100,
"5": 0,
"7": 162400,
"8": 1500,
"9": 181860.85,
"10": 450,
"11": 0,
"12": 73100
},
"2008": {
"2": 0,
"4": 0,
"5": 0,
"7": 0,
"8": 10000,
"9": 1000,
"10": 0,
"11": 0,
"12": 0
}
}
]
}
アドバイスやその他の解決策はありますか?
ありがとうございました。