[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"
鉴于我正在使用的数据的R打印输出。基本上,我有一个大型数据列,其中包含上述格式的日期和时间。
我无法弄清楚如何获取这些数据并在R中创建时间序列图。我感兴趣的是可能在某个任意时间范围内(例如10分钟,30分钟或60分钟)将数据分箱,并且随着时间的推移绘制结果图。
非常感谢您对此问题的任何帮助!谢谢你的阅读。
答案 0 :(得分:0)
在样本数据的方式上,你没有提供太多的东西来真正让我们知道你想要实现的目标,但是这里可能会让你开始。归根结底,建议归结为将数据转换为“xts”并使用period.apply
在“任意”时间帧聚合和绘制数据。
以下是一些示例数据,首先是从美国东部时间2012-10-22 12:10:21开始每11分钟收集一次data.frame
个随机值,然后转换为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")