Как создать фрейм данных со списком неравномерных списков - PullRequest
0 голосов
/ 28 мая 2018

Я работаю с некоторыми данными API, которые выводятся в файл JSON.Основная проблема с этими данными заключается в том, что с помощью функции fromJSON я получаю «список списков», который выглядит следующим образом (head применяется):

[[1]]
[[1]]$`agency_code`
[1] 7

[[1]]$applicant_income_000s
[1] 56

[[1]]$action_taken
[1] 1

[[1]]$as_of_year
[1] 2015


[[2]]
[[2]]$`agency_code`
[1] 9

[[2]]$applicant_income_000s
[1] 27

[[2]]$action_taken
[1] 1

[[2]]$as_of_year
[1] 2015


[[3]]
[[3]]$`agency_code`
[1] 9

[[3]]$applicant_income_000s
[1] 90

[[3]]$action_taken
[1] 1

[[3]]$as_of_year
[1] 2015


[[4]]
[[4]]$`agency_code`
[1] 9

[[4]]$action_taken
[1] 1

[[4]]$as_of_year
[1] 2015

Как видите, $applicant_income_000s отсутствует в 4-м элементе списка (и во многих других).

Я хочу сделать dataframe, где кодируются отсутствующие элементы.Проблема, с которой я сталкиваюсь, связана с rbind.Вот что я пробовал до сих пор:

  1. df <- as.data.frame(json.list.data)
  2. df <- rbind.data.frame(json.list.data, deparse.level = 1)
  3. df <- as.data.frame(rbind(json.list.data, deparse.level = 1)

В идеале,запрос API включил бы поля для пропущенных значений, таких как applicant_income_000s = ., но это не так.Вместо этого он пропускает поле, получая неровные списки, которые являются корнем моей проблемы!

У кого-нибудь есть идеи для этой проблемы?Я очень ценю ваше время!

ОБНОВЛЕНИЕ

Вот пример моего списка данных от dput(head()):

list(list(agency_code = 7, applicant_income_000s = 56, action_taken = 1, 
as_of_year = 2015), list(agency_code = 9, applicant_income_000s = 27, 
action_taken = 1, as_of_year = 2015), list(agency_code = 9, 
applicant_income_000s = 90, action_taken = 1, as_of_year = 2015), 
list(agency_code = 9, action_taken = 1, as_of_year = 2015), 
list(agency_code = 5, applicant_income_000s = 212, action_taken = 1, 
    as_of_year = 2015), list(agency_code = 7, action_taken = 1, 
    as_of_year = 2015))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...