从北海的水位来看,我有一个很大的数据集(1.295.897)。这是一个非常不错的数据集,但是从1978年至1987年,他们每小时测量一次水位,从1988年开始,他们每10分钟测量一次水位。我不需要每隔10分钟测量一次,因此我想每隔10分钟删除一次测量,除了精确在小时(例如10:00、1:00)的测量之外。
这就是我从1978年到1987年的数据:
posix waarde
1 1978-01-01 00:00:00 66
2 1978-01-01 01:00:00 51
3 1978-01-01 02:00:00 17
4 1978-01-01 03:00:00 -17
5 1978-01-01 04:00:00 -46
6 1978-01-01 05:00:00 -69
这是我的数据集从1988年到2010年的样子:
posix waarde
1295892 2010-12-31 23:00:00 -73
1295893 2010-12-31 23:10:00 -71
1295894 2010-12-31 23:20:00 -68
1295895 2010-12-31 23:30:00 -64
1295896 2010-12-31 23:40:00 -59
1295897 2010-12-31 23:50:00 -53
我希望你能帮助我。
请复制示例。但是,如果您的变量实际上是POSIX类,则:
library(lubridate)
dat[ minute(dat$posix)==0, ]
的妙处lubridate
在于它处理的细节为您提供:
> test <- as.POSIXlt(Sys.time(), "GMT")
> test
[1] "2013-09-26 17:50:16 GMT"
> minute(test)
[1] 50
如果您需要排除在第二个小时之前还没有完全结束的事情:
dat[ minute(dat$posix)==0 & second(dat$posix==0), ]
您可能需要对第二部分进行四舍五入,因为还报告了十进制秒:
> second(test)
[1] 16.54902
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句