【发布时间】:2019-10-25 18:29:39
【问题描述】:
给定一个从 JSON 数组创建的 data.table:
library(jsonlite)
library(data.table)
library(reprex)
DT<- fromJSON("http://data.sensor.community/airrohr/v1/sensor/21523/",flatten=T)
setDT(DT)
str(DT[,.(timestamp,sensordatavalues),])
#> Classes 'data.table' and 'data.frame': 2 obs. of 2 variables:
#> $ timestamp : chr "2019-10-25 18:21:00" "2019-10-25 18:18:33"
#> $ sensordatavalues:List of 2
#> ..$ :'data.frame': 2 obs. of 3 variables:
#> .. ..$ id : num 1.12e+10 1.12e+10
#> .. ..$ value_type: chr "P1" "P2"
#> .. ..$ value : chr "10.78" "5.90"
#> ..$ :'data.frame': 2 obs. of 3 variables:
#> .. ..$ id : num 1.12e+10 1.12e+10
#> .. ..$ value_type: chr "P1" "P2"
#> .. ..$ value : chr "7.10" "5.33"
#> - attr(*, ".internal.selfref")=<externalptr>
我设法取消了包含 data.frame 列表的列:
DTdata <-rbindlist(DT$sensordatavalues,use.names=TRUE)
DTdata
#> id value_type value
#> 1: 11232984769 P1 10.78
#> 2: 11232984770 P2 5.90
#> 3: 11232945708 P1 7.10
#> 4: 11232945709 P2 5.33
但我不知道如何在 rbindlist 函数中添加原始 DT 中的 timestamp 列。有没有人可以启发我?
【问题讨论】:
-
您可以使用
idcol
标签: r data.table