2013-07-29 72 views
0

我有一個流量,降水和時間的數據集作爲POSIXct。我試圖在前兩個小時內沒有降水的地方記錄這些記錄,這是夜晚(對於我的目的而言,比如晚上10點到凌晨4點之間)。根據前面記錄的值選擇時間序列數據

數據集是「完整的」,因爲有小時記錄,即使流量和降水量都是na,所以我可以轉換爲時間序列。我敢肯定,我可以把它和一個循環混在一起,但願意做得更好。

示例數據集:

sample <- structure(list(flow = c(1.4838542618848, 1.68681348430786, 1.49091679298032, 
0.904015076235029, 1.67419864019143, 1.39869975622123, 0.797317388543118, 
1.34068054355126, 2.68070195855211, 2.27260130448352), 
rain = c(0.1,0.2, NA, NA, NA, NA, NA, NA, NA, NA), 
datetime = structure(c(1104523200, 1104526800, 1104530400, 1104534000, 
1104537600, 1104541200, 1104544800, 1104548400, 1104552000, 1104555600), 
tzone = "GMT", class = c("POSIXct", "POSIXt"))), .Names = c("flow","rain", 
"datetime"),row.names = c(NA, 10L), class = "data.frame") 

任何想法是值得讚賞!

回答

3
pre2prec <- filter(is.na(sample$rain),c(0,1,1),sides=1)==2 
night <- as.POSIXlt(sample$datetime)$hour > 22 & as.POSIXlt(sample$datetime)$hour < 4 

sample[pre2prec & night,] 

不幸的是,您沒有設置時間值的時區。 as.POSIXct然後使用當前系統的時區。由於我在歐洲,顯然你不是,你的數據集不包含任何夜間值。

+0

你知道,這就是我來這裏的原因。事實上,我認爲會變得一團糟,實際上可以用三行代碼完成。 FWIW我編輯了示例數據以更好地展示事物,但您幾乎可以將它釘在上面。謝謝! –