R - DataFrame из списка без разворачивания некоторых столбцов - PullRequest
0 голосов
/ 07 февраля 2019

Я проанализировал некоторые данные из json, которые я сохранил в списке с именем json.

Каждая запись также представляет собой список, json[[i]], состоящий из двух подсписков json[[i]][[1]] и json[i]][[2]].

Теперь я хотел бы создать фрейм данных из этих данных,развернуть json[[i]][[1]] но не json[[i]][[2]].Столбцы этого кадра данных будут выглядеть следующим образом:

json[[i]][[1]][[1]]  json[[i]][[1]][[2]] ...  json[[i]][[1]][[n]]  json[[i]][[2]]

Пример:

json <- list(list(list(1,2), list(3,4)), list(list(5,6), list(7,8)))

Мне бы хотелось следующее имя данных:

   X1 X2        X3
1   1  2  list(3,4)
2   5  6  list(7,8)

Я попробовал следующий метод, но, похоже, развернул и второй список:

columns <- lapply(json, function(y) {
    list(c(y[[1]][[1]],
           y[[1]][[2]], 
           list(y[[2]])))
})
data.frame(matrix(columns))

Вывод:

  matrix.columns.
1      1, 2, 3, 4
2      5, 6, 7, 8

Как правильно создать этот фрейм данных?

1 Ответ

0 голосов
/ 07 февраля 2019

Чтобы упростить отображение и присоединение к data.frames, мы можем использовать purrr:map_dfr() здесь.Как насчет

purrr::map_dfr(json, function(x) {
  d <- data.frame(
    X1 = x[[1]][[1]],
    X2 = x[[1]][[2]]
  )
  d$X3 <- x[2]
  d
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...