我有一个像这样的数据帧。
date | aid | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
2018-12-02 | 108720000 | 9.462000 | td style="text-align:left;">2018-12-054 | 2018-12-05 | 6 | 2018-12-08 | 6 | 1.3677143 | 9.199286 | .2580000
您需要将数据重塑为具有适当结构的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))