JSON итоговый столбец выбранного набора столбцов на группу во фрейме данных - PullRequest
1 голос
/ 30 апреля 2020

Я пытаюсь сгенерировать 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 массивов.

Ответы [ 2 ]

1 голос
/ 30 апреля 2020

Мы можем обернуть list вне toJSON

library(dplyr)
mtcars %>%
     group_by(cyl) %>% 
     summarise(x = list(toJSON(tibble(wt = wt, am = am, mpg = mpg), auto_unbox = FALSE)))
1 голос
/ 30 апреля 2020

Использование

toJSON(data.frame(wt = wt, am = am, mpg = mpg), auto_unbox = FALSE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...