【问题标题】:Frequency Time Series in R with time dataR中的频率时间序列与时间数据
【发布时间】:2013-02-12 07:28:04
【问题描述】:
 [9982] "2012-10-22 12:10:21 EDT" "2012-10-22 02:48:09 EDT" "2012-10-22 13:13:51 EDT"
 [9985] "2012-10-22 14:24:23 EDT" "2012-10-22 10:49:54 EDT" "2012-10-22 09:49:32 EDT"

Given 是我正在处理的数据的 R 打印输出。本质上,我有一大列数据,其中包含上述格式的日期和时间。

我无法弄清楚如何获取这些数据并在 R 中创建时间序列图。我有兴趣将数据按任意时间范围(例如 10 分钟、30 分钟或 60 分钟)进行分箱,并且随着时间的推移绘制结果。

非常感谢您对此问题的任何帮助!感谢阅读。

【问题讨论】:

  • 更多细节会有所帮助。另一列中是否还有与这些日期时间相关的数据值?
  • 绘图什么?其他列包含什么?
  • 您确实需要提供示例数据,否则其他人很难提供帮助。
  • 您只想要时间线上的点吗?另外,请考虑使用dput(head(yourdata)) 向我们提供您的数据,以便我们可以复制/粘贴(请参阅R how-to reproducible example
  • Try something. 别再当吸血鬼了。

标签: r graph time-series


【解决方案1】:

您并没有提供太多示例数据来真正让我们了解您想要实现的目标,但这里有一些东西可能会帮助您入门。最终,建议归结为将您的数据转换为“xts”并使用period.apply 在“任意”时间范围内汇总和绘制数据。

这里有一些示例数据,首先是作为 data.frame 的随机值,从 2012-10-22 12:10:21 EDT 开始每 11 分钟收集一次,然后转换为 xts

set.seed(1)
temp <- data.frame(date = seq(as.POSIXct("2012-10-22 12:10:21 EDT", tz="EDT"), 
                              length.out = 100, by = "11 min"),
                   values = rnorm(100))
library(xts)
x.temp <- xts(temp[-1], temp[, 1])
head(x.temp)
#                         values
# 2012-10-22 12:10:21 -0.6264538
# 2012-10-22 12:21:21  0.1836433
# 2012-10-22 12:32:21 -0.8356286
# 2012-10-22 12:43:21  1.5952808
# 2012-10-22 12:54:21  0.3295078
# 2012-10-22 13:05:21 -0.8204684

在这里,我们将任意汇总过去每 93 分钟的总和。

my93minAgg <- period.apply(x.temp, 
                           INDEX = endpoints(x.temp, on = "mins", k = 93), 
                           FUN = sum)
my93minAgg
#                         values
# 2012-10-22 13:16:21  0.3133101
# 2012-10-22 14:55:21  1.1543989
# 2012-10-22 16:23:21  2.1290954
# 2012-10-22 18:02:21  0.5205041
# 2012-10-22 19:30:21 -0.6007850
# 2012-10-22 21:09:21  1.5058904
# 2012-10-22 22:37:21  0.9999036
# 2012-10-23 00:16:21  1.1553448
# 2012-10-23 01:44:21  1.9799783
# 2012-10-23 03:23:21 -1.7152471
# 2012-10-23 04:51:21  2.9882778
# 2012-10-23 06:19:21  0.4580653

以下是你将如何绘制它:

plot(my93minAgg, main = "My 93 Minute Aggregation")

【讨论】:

    猜你喜欢
    • 2014-11-28
    • 2018-06-24
    • 2021-01-26
    • 2021-05-12
    • 2013-10-13
    • 2020-03-31
    • 2013-11-13
    • 2021-04-02
    • 2021-04-02
    相关资源
    最近更新 更多