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

问题描述 投票:0回答:2

[我正在尝试生成一个数据的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。

r dplyr jsonlite
2个回答
0
投票

使用

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

0
投票

我们可以在list外面包裹toJSON

library(dplyr)
mtcars %>%
     group_by(cyl) %>% 
     summarise(x = list(toJSON(tibble(wt = wt, am = am, mpg = mpg), auto_unbox = FALSE)))
© www.soinside.com 2019 - 2024. All rights reserved.