【发布时间】:2017-01-10 07:37:18
【问题描述】:
我按照以下问题中提到的说明使用 RJSONIO 包将 JSON 数据转换为数据帧。链接如下:
How to convert JSON to Dataframe
以下是我的数据的 JSON 汇总,每个字段包含相同数量的值,大约 50,000。 color 字段中的值是 list 类型的,我猜这是导致问题的原因。
json
title: chr
remaining: chr
color: list()
brand: chr
modelnum: chr
size: chr
我附上了一组 JSON 值的示例,如果社区中的任何人都可以阐明如何将其建模为数据框,那就太好了!
示例 JSON 数据:
{"title":"oneplus 3","remaining":"","color":[],"brand":"OnePlus","modelnum":"OnePlus 3","size":""}
{"title":"oneplus 3 (soft gold, 64 gb)","remaining":"(soft )","color":["gold"],"brand":"OnePlus","modelnum":"OnePlus 3","size":"64 gb"}
{"title":"deal 1:oneplus 3 (graphite, 64gb) 6gb ram 4g lte - 1 year manufacture warranty","remaining":"deal 1: 6gb ram 4g lte - 1 year manufacture warranty","color":["graphite"],"brand":"OnePlus","modelnum":"OnePlus 3","size":"64gb"}
{"title":"oneplus 3 (graphite, 64 gb)","remaining":"","color":["graphite"],"brand":"OnePlus","modelnum":"OnePlus 3","size":"64 gb"}
{"title":"xiaomi redmi note 3 32gb","remaining":"","color":[],"brand":"Xiaomi","modelnum":"Redmi Note 3","size":"32gb"}
{"title":"xiaomi redmi note 3 (grey 32 gb) mobile phone","remaining":"mobile phone","color":["grey"],"brand":"Xiaomi","modelnum":"Redmi Note 3","size":"32 gb"}
{"title":"xiaomi redmi note 3 new (6 month brand warranty)","remaining":"new (6 month brand warranty)","color":[],"brand":"Xiaomi","modelnum":"Redmi Note 3","size":""}
{"title":"xiaomi redmi note 3 (gold 32gb) mobile phone","remaining":"mobile phone","color":["gold"],"brand":"Xiaomi","modelnum":"Redmi Note 3","size":"32gb"}
{"title":"xiaomi redmi note 3 (dark grey) (32gb)","remaining":"","color":["dark grey"],"brand":"Xiaomi","modelnum":"Redmi Note 3","size":"32gb"}
{"title":"mi redmi note 3 32gb dark grey","remaining":"mi","color":["dark grey"],"brand":"Xiaomi","modelnum":"Redmi Note 3","size":"32gb"}
{"title":"xiaomi redmi note 3 (gold, 32gb)","remaining":"","color":["gold"],"brand":"Xiaomi","modelnum":"Redmi Note 3","size":"32gb"}
R代码:
library(RJSONIO)
json <- fromJSON(file_path_for_the_above_data, nullValue = NA)
dat <- lapply(json, function(j) {
as.data.frame(replace(j, sapply(j, is.list), NA))
})
这是发生错误的地方。
替换错误(j, sapply(j, is.list), NA): 无效的下标类型“列表”
谢谢。
【问题讨论】:
标签: json r data-modeling