相关疑难解决方法(0)

将导入的json数据导入数据框

我有一个包含超过1500个json对象的文件,我想在R中使用.我已经能够将数据作为列表导入,但是很难将其强制转换为有用的结构.我想创建一个数据框,其中包含每个json对象的行和每个key:value对的列.

我用这个小的假数据集重新创建了我的情况:

[{"name":"Doe, John","group":"Red","age (y)":24,"height (cm)":182,"wieght (kg)":74.8,"score":null},
{"name":"Doe, Jane","group":"Green","age (y)":30,"height (cm)":170,"wieght (kg)":70.1,"score":500},
{"name":"Smith, Joan","group":"Yellow","age (y)":41,"height (cm)":169,"wieght (kg)":60,"score":null},
{"name":"Brown, Sam","group":"Green","age (y)":22,"height (cm)":183,"wieght (kg)":75,"score":865},
{"name":"Jones, Larry","group":"Green","age (y)":31,"height (cm)":178,"wieght (kg)":83.9,"score":221},
{"name":"Murray, Seth","group":"Red","age (y)":35,"height (cm)":172,"wieght (kg)":76.2,"score":413},
{"name":"Doe, Jane","group":"Yellow","age (y)":22,"height (cm)":164,"wieght (kg)":68,"score":902}]
Run Code Online (Sandbox Code Playgroud)

数据的一些功能:

  • 这些对象都包含相同数量的key:value对,尽管某些值为null
  • 每个对象有两个非数字列(名称和组)
  • name是唯一标识符,有10个左右的组
  • 许多名称和组内容包含空格,逗号和其他标点符号.

基于这个问题:R list(structure(list()))到数据框,我尝试了以下内容:

json_file <- "test.json"
json_data <- fromJSON(json_file)
asFrame <- do.call("rbind.fill", lapply(json_data, as.data.frame))
Run Code Online (Sandbox Code Playgroud)

使用我的真实数据和这些假数据,最后一行给出了这个错误:

Error in data.frame(name = "Doe, John", group = "Red", `age (y)` = 24,  : 
  arguments imply differing number of rows: 1, 0
Run Code Online (Sandbox Code Playgroud)

import json r dataframe

47
推荐指数
2
解决办法
8万
查看次数

将嵌套列表转换为数据帧

目标是将有时包含缺失记录的嵌套列表转换为数据框.缺少记录时的结构示例如下:

str(mylist)

List of 3
 $ :List of 7
  ..$ Hit    : chr "True"
  ..$ Project: chr "Blue"
  ..$ Year   : chr "2011"
  ..$ Rating : chr "4"
  ..$ Launch : chr "26 Jan 2012"
  ..$ ID     : chr "19"
  ..$ Dept   : chr "1, 2, 4"
 $ :List of 2
  ..$ Hit  : chr "False"
  ..$ Error: chr "Record not found"
 $ :List of 7
  ..$ Hit    : chr "True"
  ..$ Project: chr "Green"
  ..$ Year   : chr "2004" …
Run Code Online (Sandbox Code Playgroud)

r nested-lists dataframe rbind

21
推荐指数
4
解决办法
3万
查看次数

标签 统计

dataframe ×2

r ×2

import ×1

json ×1

nested-lists ×1

rbind ×1