我需要帮助从列表格式的Json文件传输元数据(下面的示例示例文本)。
具体而言,我在调整每个文件时遇到问题,因为它似乎跳过了空值,并定义了特定的列等。
每个数据集大约有80个参数(md5sum,data_type等等),其中大约20个左右有Null值,但我仍然希望它们列出,因为1000+数据集是null价值并不总是一致的,所以当我试图将所有数据转换成数据框架时,我认为它们是锯齿状的并且没有很好地对齐。 希望这能让我对所需要的内容更加清晰。
样品:
[{
"md5sum": "aa",
"data_type": "bb",
"file_name": "cc",
"file_size": 100296,
"data_format": "BCR XML",
"submitter_id": null,
"access": "open",
"state": "live",
"file_id": "ee",
"data_category": "ff",
"associated_entities": [
{
"entity_id": "gg",
"case_id": "hh",
"entity_submitter_id": "II",
"entity_type": "case"
}
],
我尝试使用的一些代码尝试但是并没有真正起作用:
library(rjson)
jSnData2 <- fromJSON(file = "meta.json")
df <- lapply(jSonData2, function(play){ data.frame(matrix(unlist(play), ncol=66, byrow=T))})
df2 <- do.call(rbind, df)
答案 0 :(得分:0)
使用双括号选择单个元素,然后将它们组合成数据帧。
我没有在这台计算机上运行RStudio来测试它,所以可能有拼写错误,但你应该可以使用如下内容:
jSnData2 <- fromJSON(file='meta.json')
md5sum <- sapply(jSnData2, function(x) x[[1]])
data_type <- sapply(jSnData2, function(x) x[[2]])
#repeat for the rest of the elements in the json file
df <- data.frame(md5sum, data_type, #add all the other lists here)
您的结果将是一个包含列名称的数据框,使用您所谓的列表。