![](/img/trans.png)
[英]Convert data frame with epoch timestamps to time-series with milliseconds in R
[英]Convert uneven Data Time [timestamps] series to regular time series : R
我有一个数据框“ gg”,看起来像这样:
> 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
转换为常规时间序列以进行这样的预测( 预测时间序列数据 ),但是我不知道如何将时间戳值序列添加到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请帮助我。 谢谢
在进行所有操作之前,您需要确保您拥有正确的数据类。 确保gg$timestamps
采用POSIXct格式或日期格式(以您的偏好为准)
gg$timestamps<- as.POSIXct(strftime(gg$timestamps,format = "%Y-%m-%d %H:%M:%S"))
您需要做的就是根据您的特定间隔使用时间序列值生成一个新的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值。
更新:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.