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")

任何想法表示赞赏!

4

1 回答 1

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然后使用当前系统的时区。由于我在欧洲而您显然不在,因此您的数据集不包含任何对我来说的夜间值。

于 2013-07-29T15:48:26.470 回答