重新格式化R数据框的JSON输出

时间:2019-05-09 16:59:36

标签: r json

我正在尝试将R数据帧导出为特定的JSON格式。这是针对多个类别的时代格式的时间序列数据。

我正在使用jsonlite包进行JSON输出,但是我想尝试以特定格式导出文件。

这是我的数据框:

Type<-c("Type1", "Type1", "Type1", "Type2", "Type2", "Type2", "Type3", "Type3", "Type3")
Day<-c("2019-05-02 00:00:00.0","2019-05-03 00:00:00.0","2019-05-04 00:00:00.0","2019-05-02 00:00:00.0","2019-05-03 00:00:00.0","2019-05-04 00:00:00.0","2019-05-02 00:00:00.0","2019-05-03 00:00:00.0","2019-05-04 00:00:00.0")
Value<-c(3,4,2,9,14,18,35,9,23)
DF<-data.frame(Type,Day,Value)

转换为时代时间:

DF$Day<- as.integer(as.POSIXct(DF$Day), tz="EST")

然后我按类型进行汇总,并创建“日期”和“值”列的列表:

DF2 <- aggregate(cbind(Day, Value) ~ Type, DF, list)

并导出为JSON格式:

jsonlite::toJSON(DF2, pretty = TRUE)

其中给出以下内容:

[
  {
    "Type": "Type1",
    "Day": [1556769600, 1556856000, 1556942400],
    "Value": [3, 4, 2]
  },
  {
    "Type": "Type2",
    "Day": [1556769600, 1556856000, 1556942400],
    "Value": [9, 14, 18]
  },
  {
    "Type": "Type3",
    "Day": [1556769600, 1556856000, 1556942400],
    "Value": [35, 9, 23]
  }
] 

但是,我正在尝试将格式更改为以下格式:

[ 
    { 
      key : Type1 , 
      values : [ [ 1556769600 , 3] , [ 1556856000 , 4] , [ 1556942400 , 2] ]
    } , 

    {
      key : Type2 , 
      values : [ [ 1556769600 , 9] , [ 1556856000 , 14] , [ 1556942400 , 18] ]
    } , 

    { 
      key : Type3 , 
      values : [ [ 1556769600 , 35] , [ 1556856000 , 9] , [ 1556942400 , 23] ]
    }   
]

如果您可以提供帮助,请告诉我。感谢您的协助。

谢谢!

0 个答案:

没有答案