如何使用不一致列表列表创建数据框

时间:2018-05-28 17:00:35

标签: r json api

我正在处理一些在JSON文件中输出的API数据。这个数据的主要问题是使用函数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

如您所见,第4个列表元素(以及更多)中缺少$applicant_income_000s

我想创建一个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)
  4. 理想情况下,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))
    

0 个答案:

没有答案