【发布时间】:2012-09-20 07:36:18
【问题描述】:
我有一个如下所示的数据集:
Date<-c("2009-05-1 10:00:00","2009-05-1 10:05:00","2009-05-1 10:10:00",
"2009-05-1 10:15:00","2009-05-1 10:20:00","2009-05-1 10:25:00")
Dates<-strptime(Date, "%Y-%m-%d %H:%M:%S")
DF<-data.frame(Dates,X=1:6, Y=1:6)
DF
Dates X Y
1 2009-05-01 10:00:00 1 1
2 2009-05-01 10:05:00 2 2
3 2009-05-01 10:10:00 3 3
4 2009-05-01 10:15:00 4 4
5 2009-05-01 10:20:00 5 5
6 2009-05-01 10:25:00 6 6
按原样,时间戳是每 5 分钟一次。但是我需要每分钟都有一个数据集,所以我希望首先添加丢失的分钟数据,然后估计X 和Y 列数据。 X 列是上面数据的简单填充,Y 是上面/下面数据的平均值。
希望结果如下所示:
Dates X Y
2009-05-01 10:00:00 1 1
2009-05-01 10:01:00 1 1.5
2009-05-01 10:02:00 1 1.5
2009-05-01 10:03:00 1 1.5
2009-05-01 10:04:00 1 1.5
2009-05-01 10:05:00 2 2
2009-05-01 10:06:00 2 2.5
2009-05-01 10:07:00 2 2.5
2009-05-01 10:08:00 2 2.5
2009-05-01 10:09:00 2 2.5
2009-05-01 10:10:00 3 3
2009-05-01 10:11:00 3 3.5
2009-05-01 10:12:00 3 3.5
2009-05-01 10:13:00 3 3.5
2009-05-01 10:14:00 3 3.5
2009-05-01 10:15:00 4 4
2009-05-01 10:16:00 4 4.5
2009-05-01 10:17:00 4 4.5
2009-05-01 10:18:00 4 4.5
2009-05-01 10:19:00 4 4.5
2009-05-01 10:20:00 5 5
2009-05-01 10:21:00 5 5.5
2009-05-01 10:22:00 5 5.5
2009-05-01 10:23:00 5 5.5
2009-05-01 10:24:00 5 5.5
2009-05-01 10:25:00 6 6
任何关于如何去做这件事的想法将不胜感激。
【问题讨论】:
-
为什么每分钟都需要它? (它没有添加任何信息...)
-
我打算将这个数据集与其他几个数据集合并,所有这些都是按分钟计算的。所以我知道这是作弊,但这是我唯一能想到的。
-
在这种情况下,您可能应该更平滑地插入值,而不是将所有中间行
Ys 分配为相同的平均值。例如,在这种情况下,您希望Y看起来像1, 1.2, 1.4, 1.6, 1.8, 2, 2.2, 2.4, 2.6...您可以为此使用 smooth.spline(在这种情况下,您的“x”是时间)。但即使在每对值之间进行严格的线性插值(如上面的1, 1.2, 1.4)也会让它变得更好。 -
谢谢大卫,这是一个很好的观点,我会尝试将平滑合并到我的数据中
标签: r