[我正在尝试生成一个数据的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)
我们可以在list
外面包裹toJSON
library(dplyr)
mtcars %>%
group_by(cyl) %>%
summarise(x = list(toJSON(tibble(wt = wt, am = am, mpg = mpg), auto_unbox = FALSE)))