Re: [问题] Json to R and Data talbe/matrix arrange

楼主: celestialgod (天)   2017-06-04 20:36:49
看了几次你的问题,有点搞不清楚你再问什么
不过我尽可能抓你问题的大意来回答你
有任何问题再推文问
※ 引述《peterwu76 (金冈)》之铭言:
: [问题类型]:
:
: 程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
:
: [软件熟悉度]:
: 初学者 有写过其他程式的初浅经验
: [问题叙述]:
: 1. 想从3个json来源的其中一个source抓资料下来,
: 最后我只要其中一个device (ID: 74DA38C7D1D2 )的资讯
: (1) 有全部的device资讯,real time
: https://data.lass-net.org/data/last-all-airbox.json
: (2) 一个是by specific ID,real time
: https://data.lass-net.org/data/last.php?device_id=74DA38C7D1D2
: (3) 一个是historical by ID
: https://data.lass-net.org/data/history.php?device_id=74DA38C7D1D2
: 2. Data处理: 抓下来的资料依照时间排序,如果是
: (1)的作法: 打算写个抓下来需要再依照ID去做撷取并output的script,
: 再用工作排程器做定时抓资料,但排程器还没掌握到如何
: 可以每天每小时/5分钟去启动script;
: (2)的做法: 就是写好再用工作排程器作定时抓资料。
: (3)的作法: 抓下来后,想办法排序。
: 3. Problems:
: (1)的做法与(2)的做法:
: 用自己try出来的写法,但排程器还没掌握到如何可以每天每小时或
: 5分钟去启动script;或是本身用R做到这件事。
用as.data.frame不是不行,只是这样去破坏原有的list架构
会让整个使用上变得怪,建议这样用:
url <- "https://data.lass-net.org/data/last-all-airbox.json"
x <- fromJSON(url)
final_data_id <- subset(x$feeds, SiteName == "74DA38C7D1D2")
排成部分可以用taskscheduleR,可以参考这篇:https://goo.gl/4DtZTb
: (3)的做法:
: 不确定怎么克服 1 row by 多重columns 至 只要些specific columns in rows by
: different times
完全没看懂你在写什么,反正整成table,你应该就能直接使用了
library(jsonlite)
url <- "https://data.lass-net.org/data/history.php?device_id=74DA38C7D1D2"
x <- fromJSON(url)
library(data.table)
library(lubridate)
outDT <- rbindlist(x$feeds$AirBox)
outDT[ , `:=`(source = x$source, version = ymd_hms(x$version),
device_id = x$device_id, timestamp = ymd_hms(timestamp))]
看不懂data.table的话,试着用用看base做法
而lubridate的ymd_hms是比较简单把字串转时间的方式,不喜欢可以用as.POSIXct
结果:
http://imgur.com/a/4lliz
http://imgur.com/a/EoHGf
: 4. 希望众前辈可以提供些function/package 的 keyword 含 concept。 非常感谢大家!
作者: peterwu76 (金冈)   2017-06-04 22:43:00
感谢前辈的解答,我可能需要消化一下…语意的部分,很抱歉表达不清楚。就前辈的图来说,我觉得我的问题可能已被您的方法满足

Links booklink

Contact Us: admin [ a t ] ucptt.com