2015-10-20 37 views
0

挑戰:我已經將JSON文檔導入到數據框中,並且希望將其繪製爲一次性系列。但是,我得到兩個系列。這個問題似乎與我的格式有關,但我一直未能弄清楚問題所在。數據是每5秒測量一次的傳感器數據。R時間序列的格式數據幀(兩個ts而不是一個?)

期望的輸出是有我的X線和價值作爲我的Y線開始。 Find the data here

腳本

#Clean work environment 
rm(list = ls()) 

#Set options 
setwd("C:/Users/Work/Directory") 

url <- "device.json" 
device <- fromJSON(url) 

#Format date time 
device$start <- strptime(device$start, "%Y-%m-%dT%H:%M:%OS") 

#Create and plot ts 
device <- ts(device, deltat = 0.05) 
plot.ts(device) 

Plot of device - should only be one time series, not two.

回答

1

這是更好地使用xtszoo對象存儲高頻和不規則的時間序列數據。您可以使用zoo包像這樣快速創建時間序列對象:

library(jsonlite) 
library(zoo) 

device <- fromJSON("device.json") 
device$start <- strptime(device$start, "%Y-%m-%dT%H:%M:%OS") 
device <- zoo(device$value, order.by = device$start) 
plot(device) 

enter image description here

+0

非常感謝你。如果我想使用ts,我將如何實現這一點?我問的原因是我想用它進行預測。 – Philip

+0

@PhilipHoyos那麼,你的時間系列是不規則的(你有一些觀察30s差異,而不是5s)你可以做的是嘗試使用'new_ts < - as.ts(設備)'來調整它,但你會有一些缺少它的值。預測缺失值是時間序列分析中的一個重要主題,因此可能應該檢查人們正在做什麼來解決這類問題。 – dickoa

+0

太棒了!這給了我一些工作。非常感謝你。 – Philip

相關問題