【发布时间】:2016-10-22 15:32:45
【问题描述】:
低成本空气质量传感器 (AQE) 将其数据发送到 opensensors.io 服务器。它每 x 秒发送一串信息(时间戳、污染物浓度等)。可以检索结构化为 json 文件的数据。 Opensensors 术语使用devices、topics、organizations 和payloads。我已经弄清楚如何设置 curl 句柄并使用 curl 包下载 csv 文件。这是代码
curl_download(url = myURL2, destfile = "curlDownloadTest.csv", mode = "w", handle = myCurlHandle)
下载数据的示例位于https://github.com/GeraldCNelson/AQEAnalysis/commit/c6ee29545d07835c5a920bf2b37625adb78462aa
我在jsonlite包中使用fromJSON来改造这个
temp <- fromJSON("curlDownloadTest.csv", simplifyDataFrame = FALSE)
输出 (temp) 是一个包含 2 个元素的大列表 - 消息和下一个。 messages 包含所有数据; next 是用于获取下一组数据的链接(并非一次全部下载)。
消息列表由多组列表组成(每组上传数据一个);每组有五个元素 - device、owner、topic、date 和 payload。有效负载是 3 个列表 - encoding(总是 chr utf-8)、content-type(总是 chr "application/json")和 text。文本列表看起来像它的 json 格式(这里是一个字符串片段 - "{\"serial-number\":\"egg00802aaa019b0111\",\"converted-value\":69.52,\"converted-units\":\ "度F\")
我想将这些数据重组为一个数据框(或数据表),其中包含
日期信息作为一列,来自有效负载的测试信息作为其余列(serial-number、converted value 等...
我不知道如何将有效负载列表中的文本列表从其当前(json?)结构转换为我可以 rbind 到数据帧的内容。
【问题讨论】:
-
来自 OpenSensors 的 Yodit 在这里,我们目前正在编写一个 R-Stats 库,因为我们需要它来满足我们自己的需要。将在接下来的几周内推动并提醒您,因此应该会让您的生活更轻松。
-
嗨 @JerryN - 我已经开始在这里研究 R 包 - github.com/lgatto/rosio。小插图给出了一个概述。