格式化的JSON for R数据帧



我有一个像这样的数据帧。

td style="text-align:left;">2018-12-05.2580000
date aid
2018-12-02 108720000 9.46200042018-12-0562018-12-0861.36771439.199286

您需要将数据重塑为具有适当结构的list

result <- split(df, df$date) |>
lapply(function(x) {
split(x[-c(1:2)], x$aid) |> 
lapply(function(y) list(mean = y))
}) |>
jsonlite::toJSON() |>
jsonlite::prettify()

这就产生了

result
#> {
#>     "2018-12-02": {
#>         "10": {
#>             "mean": [
#>                 {
#>                     "x_axis": 1.072,
#>                     "y_axis": 9.462,
#>                     "z_axis": 0.083
#>                 }
#>             ]
#>         }
#>     },
#>     "2018-12-05": {
#>         "4": {
#>             "mean": [
#>                 {
#>                     "x_axis": -1.9322,
#>                     "y_axis": 5.6543,
#>                     "z_axis": 6.7933
#>                 }
#>             ]
#>         },
#>         "6": {
#>             "mean": [
#>                 {
#>                     "x_axis": 0.038,
#>                     "y_axis": 8.6627,
#>                     "z_axis": 3.9419
#>                 }
#>             ]
#>         }
#>     },
#>     "2018-12-08": {
#>         "6": {
#>             "mean": [
#>                 {
#>                     "x_axis": 1.3677,
#>                     "y_axis": 9.1993,
#>                     "z_axis": 0.258
#>                 }
#>             ]
#>         }
#>     }
#> }
#> 

创建于2022-10-30,reprex v2.0.2


以可复制格式从问题中获取的数据

df <- structure(list(date = c("2018-12-02", "2018-12-05", "2018-12-05", 
"2018-12-08"), aid = c(10L, 4L, 6L, 6L), x_axis = c(1.072, -1.9322222, 
0.038, 1.3677143), y_axis = c(9.462, 5.654278, 8.662714, 9.199286
), z_axis = c(0.083, 6.7933333, 3.9418571, 0.258)), class = "data.frame", 
row.names = c(NA, -4L))

最新更新