2017-04-27 92 views
2

我有一个数据帧“GG”,看起来像这样:转换数据参差不齐时间[时间戳]系列常规时间系列:R

> head(gg) 

      timestamps  value 
1 2017-04-25 16:52:00 -0.4120000 
2 2017-04-25 16:53:00 -0.4526667 
3 2017-04-25 16:54:00 -0.4586667 
4 2017-04-25 16:55:00 -0.4606667 
5 2017-04-25 16:56:00 -0.5053333 
6 2017-04-25 16:57:00 -0.5066667 

我需要绘制这是一个时间序列数据做预测。步骤如下:

1)gg$timestamps <- as.POSIXct(gg$timestamps, format = "%Y-%m-%d %H-%M-%S") #changing "Timestamps" column 'factor' to 'as.POSIXct'.

2)gg.ts <- xts(x=gg$value, order.by = gg$timestamps) #converting the dataframe to time series (Non Regular Time series)

现在我想这个gg.ts转换为常规时间序列预测做这样的(Forecasting time series data) 但我不知道如何将时间戳值系列添加到ts函数中。当我尝试它抛出错误:

> gg.xts <- ts(gg.ts, frequency = '1', start = c(2017-04-25 16:52:00,171)) 
Error: unexpected numeric constant in "gg.xts <- ts(gg.ts, frequency = '1', start = c(2017-04-25 16" 

我有我的整个问题清楚地列在这里。 https://stackoverflow.com/questions/43627826/plotting-time-series-data-r-plotly-timestamp-values 请帮帮我。谢谢

回答

0

在此之前,你需要确保你有正确的数据类。确保gg$timestamps是POSIXct形式或日期的形式(无论你偏好)

gg$timestamps<- as.POSIXct(strftime(gg$timestamps,format = "%Y-%m-%d %H:%M:%S")) 

所有你需要做的是生成时间序列值的新data.frame根据您的具体区间,然后合并新data.frame与gg

tstamp <- data.frame(x = seq(head(gg$timestamps,1),tail(gg$timestamps,1),by = "sec")) 
res <-merge(tstamp, gg, by.x="x",by.y="timestamps",all.x = TRUE) 
xts(res$value,order.by = res$x)  # you create your xts time series this way. 

注意:您有一些NA值在里面,你原来的时间序列是一个不规则的时间序列。

更新时间:

+0

感谢你好很多的答复。但我希望这个时间戳值使用“ts”(例如:'x = xts(res,order.by = res $ x),x.ts = ts(x,freq = 1, start = c(2017-04-25 16:48:00,191))'。这个x.ts抛出错误,正如我前面提到的那样,该图显示了我的图表中的一些随机值,它应该显示time-tamp value。请参考这个[link](http://stackoverflow.com/questions/10302261/forecasting-time-series-data) – dhinar

+0

你得到的错误是因为'start'接受了'numeric ',而不是你输入的内容 – theArun

+0

有没有办法将这些时间戳值添加到'开始'?becoz我想要这些时间戳值,因为我的x轴缩放到预测图上。希望你能明白我的观点 – dhinar