1
我有一个数据集,看起来像这样的数据添加并填写:行基于高于/低于
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
如何去这样做的任何想法,将不胜感激。
为什么你需要把它在每分钟? (它不会添加任何信息...) –
我打算将这个数据集与其他几个合并,所有这些都是按分钟计算的。所以我知道这是作弊,但这是我能想到的唯一的事情。 – Vinterwoo
在这种情况下,你可能应该做一个更平滑的插值,而不是将所有中间行'Y'分配给相同的平均值。例如,在这种情况下,您希望'Y'看起来像'1,1.2,1.4,1.6,1.8,2,2.2,2.4,2.6 ...'。您可以使用[smooth.spline](http:// stat .ethz.ch/R-manual/R-patched/library/stats/html/smooth.spline.html)(这里的“x”是时间)。但是即使在每对值之间进行严格的线性插值(比如上面的'1,1.2,1.4')也会使它好很多。 –