JSON 数据框中每组选定列集的摘要列

JSON summary column of a selected set of columns per group in a data frame

我正在尝试生成一个 JSON 数据列来汇总数据框中每组的某些列,但我发现很难以我想要的格式获取它。

我尝试了什么:

library(jsonlite)
library(dplyr)
mtcars <- mtcars[sample(1:nrow(mtcars), 8), ]
mtcars %>%
  group_by(cyl) %>%
  summarise(x = toJSON(list(wt = wt, am = am, mpg = mpg), auto_unbox = FALSE)))

我得到的:

  cyl                                                                     x
1   4         {"wt":[3.19,1.835,1.935],"am":[0,1,1],"mpg":[24.4,33.9,27.3]}
2   6                                    {"wt":[2.875],"am":[1],"mpg":[21]}
3   8 {"wt":[4.07,3.78,3.57,3.57],"am":[0,0,1,0],"mpg":[16.4,15.2,15,14.3]}

我想要的:

  cyl                                                                                      x
1   4 [{"wt": 2.32, "am": 1, "mpg": 22.8}, {"wt": 3.19, "am": 0, "mpg": 24.4}, {...}, {...}]
2   6 [{....}, {....}]
3   8 [{....}, {....}, {....}]

知道如何到达那里吗?尝试了其他一些东西,但它们都产生相同的 json 个数组。

使用

toJSON(data.frame(wt = wt, am = am, mpg = mpg), auto_unbox = FALSE)

我们可以在 toJSON

外面用 list 换行
library(dplyr)
mtcars %>%
     group_by(cyl) %>% 
     summarise(x = list(toJSON(tibble(wt = wt, am = am, mpg = mpg), auto_unbox = FALSE)))