将opensensors json文件转换为数据帧(或表)

将opensensors json文件转换为数据帧(或表),json,r,curl,jsonlite,Json,R,Curl,Jsonlite,低成本空气质量传感器(AQE)将其数据发送到opensensors.io服务器。它每x秒发送一个字符串信息(时间戳、污染物浓度等)。可以以json文件的形式检索数据。Opensensors术语使用设备,主题,组织,以及有效载荷。我已经了解了如何设置curl句柄并使用curl包下载csv文件。这是密码 curl_download(url = myURL2, destfile = "curlDownloadTest.csv", mode = "w", handle = myCurlHandle)

低成本空气质量传感器(AQE)将其数据发送到opensensors.io服务器。它每x秒发送一个字符串信息(时间戳、污染物浓度等)。可以以json文件的形式检索数据。Opensensors术语使用
设备
主题
组织
,以及
有效载荷
。我已经了解了如何设置curl句柄并使用curl包下载csv文件。这是密码

curl_download(url = myURL2, destfile = "curlDownloadTest.csv", mode = "w", handle = myCurlHandle)
下载的数据示例如下所示

我在jsonlite包中使用
fromJSON
来转换这个

temp <- fromJSON("curlDownloadTest.csv", simplifyDataFrame = FALSE)

temp谢天谢地,一切都很统一:

library(jsonlite)
library(dplyr)

df <- fromJSON("curlDownloadTest.csv")

bind_cols(
  select(df$messages, device, owner, topic, date),
  stream_in(textConnection(df$messages$payload$text), flatten=TRUE)
) -> df

glimpse(df)
## Observations: 742
## Variables: 14
## $ device             <chr> "egg00802aaa019b0111", "egg00802aaa019b0111", "egg00802aaa019b0111", "...
## $ owner              <chr> "wickeddevice", "wickeddevice", "wickeddevice", "wickeddevice", "wicke...
## $ topic              <chr> "/orgs/wd/aqe/temperature/egg00802aaa019b0111", "/orgs/wd/aqe/humidity...
## $ date               <chr> "2016-10-10T17:02:09.507Z", "2016-10-10T17:02:09.811Z", "2016-10-10T17...
## $ serial-number      <chr> "egg00802aaa019b0111", "egg00802aaa019b0111", "egg00802aaa019b0111", "...
## $ converted-value    <dbl> 63.20, 43.31, 0.52, -25.20, 63.70, 42.85, 0.53, -13.32, 64.01, 42.58, ...
## $ converted-units    <chr> "degF", "percent", "ppb", "ppb", "degF", "percent", "ppb", "ppb", "deg...
## $ raw-value          <dbl> 63.200000, 43.310000, 0.221252, -0.827832, 63.700000, 42.850000, 0.221...
## $ raw-instant-value  <dbl> 63.48000, 43.07000, 0.22149, -0.82785, 63.91000, 42.66000, 0.22073, -0...
## $ raw-units          <chr> "degF", "percent", "volt", "volt", "degF", "percent", "volt", "volt", ...
## $ sensor-part-number <chr> "SHT25", "SHT25", "NO2-B4-ISB", "3SP-O3-20-PCB", "SHT25", "SHT25", "NO...
## $ raw-value2         <dbl> NA, NA, 0.222732, NA, NA, NA, 0.222797, NA, NA, NA, 0.222460, NA, NA, ...
## $ raw-instant-value2 <dbl> NA, NA, 0.22330, NA, NA, NA, 0.22273, NA, NA, NA, 0.22341, NA, NA, NA,...
## $ compensated-value  <dbl> NA, NA, 0.62, -25.25, NA, NA, 0.63, -13.37, NA, NA, 0.02, -18.08, NA, ...
library(jsonlite)
图书馆(dplyr)
df-df
一瞥(df)
##意见:742
##变量:14
##$device“egg00802aaa019b0111”、“egg00802aaa019b0111”、“egg00802aaa019b0111”和“。。。
##$owner“wickeddevice”、“wickeddevice”、“wickeddevice”、“wickeddevice”、“Wicked…”。。。
##$topic“/orgs/wd/aqe/温度/egg00802aaa019b0111”,“/orgs/wd/aqe/湿度。。。
##$date“2016-10-10T17:02:09.507Z”、“2016-10-10T17:02:09.811Z”、“2016-10-10T17…”。。。
##$序列号“egg00802aaa019b0111”、“egg00802aaa019b0111”、“egg00802aaa019b0111”、“egg00802aaa019b0111”、“。。。
##美元折算价值63.20,43.31,0.52,-25.20,63.70,42.85,0.53,-13.32,64.01,42.58。。。
##美元换算单位“degF”、“百分比”、“ppb”、“ppb”、“degF”、“百分比”、“ppb”、“ppb”、“deg…”。。。
##美元原值63.200000,43.310000,0.221252,0.827832,63.700000,42.850000,0.221。。。
##美元原始即时价值63.48000、43.07000、0.22149、-0.82785、63.91000、42.66000、0.22073、-0。。。
##$原始单位“degF”、“百分比”、“伏特”、“伏特”、“degF”、“百分比”、“伏特”、“伏特”、。。。
##$传感器零件号“SHT25”、“SHT25”、“NO2-B4-ISB”、“3SP-O3-20-PCB”、“SHT25”、“SHT25”、“NO…”。。。
##$raw-value2 NA,NA,0.222732,NA,NA,NA,0.222797,NA,NA,NA,0.222460,NA,NA。。。
##$raw-instant-value2不适用,不适用,0.22330不适用,不适用,不适用,不适用,不适用,0.22273不适用,不适用,不适用,不适用,0.22341不适用,不适用,不适用,。。。
##美元补偿值不适用,不适用,0.62,-25.25,不适用,不适用,0.63,-13.37,不适用,不适用,0.02,-18.08,不适用。。。

OpenSensors的Yodit在这里,我们目前正在编写一个R-Stats库,因为我们需要它来满足我们自己的需要。在接下来的几周内,我们将为您提供帮助,让您的生活更轻松。您好@JerryN-我已经开始在这里编写R包了。小插曲给出了一个概述。