Я работаю с некоторыми данными 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
.Вот что я пробовал до сих пор:
df <- as.data.frame(json.list.data)
df <- rbind.data.frame(json.list.data, deparse.level = 1)
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))