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')也會使它好很多。 –