我的數據間隔爲0.1秒或10行一秒 因此,基於24 * 60 * 60 * 10的864000行一天。時間步長從UTC秒數的0.1秒到半小時(30分鐘)
我想在我的數據中找到列(風速和其他變量不顯示在這裏)的意思,將它從0.1秒時間步聚合到半小時。因此,數據將從864000行彙總到48線(一天)
輸入:
tms Hr Min Sec Wind speed
7/13/2014 0:00 0 0 0 3.45
7/13/2014 0:00 0 0 0.1 52.34
7/13/2014 0:00 0 0 0.2 1.23
7/13/2014 0:00 0 0 0.3 4.3
7/13/2014 0:00 0 0 0.4 1.34
7/13/2014 0:00 0 0 0.5 3.6
輸出我想看看:
Year Month Day Hr Wind speed
7/13/2014 7 13 0 21.92
7/13/2014 7 13 0.5 29.38
7/13/2014 7 13 1 24.18
7/13/2014 7 13 1.5 1.70
7/13/2014 7 13 2 1.80
我每小時平均代碼,我想以半小時(而不是一小時)更改彙總數據。其中dat
是沒有tms
列的數據:所以我添加了一個日期列。
library(data.table)
library(xts)
dat <- data.table(dat)
tms <- as.POSIXct(seq(0,24*(60*60*10)-1,by=1),origin="2014-07-13",tz="UTC")
xts.ts <- data.frame(xts(dat,tms))
現在我加入tms
列到我的數據
Aut <- data.frame(tms,xts.ts, check.names=FALSE, row.names=NULL)
mean2 <- aggregate(Aut,
list(hour=cut(as.POSIXct(Aut$tms), "hour")),
mean)
但是,這甚至不是每小時正確的。我希望在半小時之內掌握我的數據。有什麼建議麼?
我不清楚你想要輸出的是什麼。使用xts時間聚合很容易,但是您沒有提供可重複的輸入('dat'未定義)或您期望的輸出示例。提供這兩件事情,你可能會收到幾個答案。 –
我編輯它,但可能它需要格式化 – Wisconsin
@JoshuaUlrich我編輯它,並提供輸出,但不知道格式化發生了什麼。我想要從0.1秒時間步到30分鐘(0.5小時)的平均值。因此將數據從864000行滾動到48行,每天 – Wisconsin