2015-10-20 68 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

相关问题