【发布时间】:2018-06-18 08:59:11
【问题描述】:
在我当前的项目中,我正在尝试从csv 文件中读取数据,并尝试根据R 中csv 文件中的数据创建分层JSON 数组。示例数据如下所示:
添加数据样本数据(为简单起见减少了数据集):
Country Provider 2 G Data 3 G Data LTE FP0 anfang0 2G 3G FP1 anfang1
ABC A1 n n n fp0 j NA NA NA NA
ABC A2 NA NA NA NA NA j j fp1 n
ABC A3 n n n fp0 j NA NA NA NA
DEF A7 j j j fp0 n j j fp1 n
对数据的理解:n代表值是no,j代表值是yes,NA代表值缺失。 FP0 和FP1 表示有关同一提供商但在不同区域的信息。单行中有两种类型的数据,即2 G Data, 3 G Data, LTE, FP0, anfang 0 属于一个组,2G, 3G, FP1, anfang 1 属于另一个组。如果所有信息都是n 即no,那么我们必须考虑对应的anfang0 或anfang1 值。
示例输出如下所示(基于上面的解释):
{
"ABC": {
"fp0":[
{
"provider": "A1",
"anfrage": "j"
},
{
"provider": "A3",
"anfrage": "j"
}
],
"fp1": [
{
"provider": "A2",
"2G": "j",
"3G": "j"
}
]
},
"DEF": {
"fp1": [
{
"provider": "A7",
"2G": "j",
"3G": "j"
}
],
"fp0": [
{
"provider": "A7",
"2G": "j",
"3G": "j",
"LTE": "j"
}
]
}
}
在上述json 格式中,对于每个Country,应该只有一个json 块,如上所示。到目前为止,我尝试关注this link,但找不到任何可行的解决方案。
for(i in 1:nrow(data)){
a=c(a,jsonlite::toJSON(list(list('fp0' =
list("provider"=data$Provider[i],"2g"=data$`2 G Data`[i],"3g"=data$`3 G
Data`[i],"LTE"=data$LTE[i]))), pretty = TRUE))
}
toJSON(a, pretty = TRUE, auto_unbox = TRUE)
如果您需要更清晰的信息,请告诉我。
【问题讨论】:
-
可重现的数据比一张表格的图片更好。
-
@snoram- 我添加了示例数据,请您检查一下。