我有一个时间序列,其中包含几个小时的多个条目。
date wd ws temp sol octa pg mh daterep
1 2007-01-01 00:00:00 100 1.5 9.0 0 8 D 100 FALSE
2 2007-01-01 01:00:00 90 2.6 9.0 0 7 E 50 TRUE
3 2007-01-01 01:00:00 90 2.6 9.0 0 8 D 100 TRUE
4 2007-01-01 02:00:00 40 1.0 8.8 0 7 F 50 FALSE
5 2007-01-01 03:00:00 20 2.1 8.0 0 8 D 100 FALSE
6 2007-01-01 04:00:00 30 1.0 8.0 0 8 D 100 FALSE
我需要获得每小时一个条目的时间序列,在有多个条目的情况下采用具有最小 mh 值的条目。 (所以在上面的数据中,我的第二个条目应该是第 2 行,第 3 行应该被删除。)
我一直在研究两种方法:在新的数据框中挑选出我想要的内容,并删除现有数据框中我不需要的内容,但没有得到任何结果。感谢您的帮助。
您可以按以下方式对数据进行排序date
and mh
using plyr::arrange
,然后删除重复项:
df <- read.table(textConnection("
date wd ws temp sol octa pg mh daterep
'2007-01-01 00:00:00' 100 1.5 9.0 0 8 D 100 FALSE
'2007-01-01 01:00:00' 90 2.6 9.0 0 7 E 50 TRUE
'2007-01-01 01:00:00' 90 2.6 9.0 0 8 D 100 TRUE
'2007-01-01 02:00:00' 40 1.0 8.8 0 7 F 50 FALSE
'2007-01-01 03:00:00' 20 2.1 8.0 0 8 D 100 FALSE
'2007-01-01 04:00:00' 30 1.0 8.0 0 8 D 100 FALSE
"), header = TRUE)
library(plyr)
df <- arrange(df, date, mh)
df <- df[!duplicated(df$date), ]
df
# date wd ws temp sol octa pg mh daterep
# 1 2007-01-01 00:00:00 100 1.5 9.0 0 8 D 100 FALSE
# 2 2007-01-01 01:00:00 90 2.6 9.0 0 7 E 50 TRUE
# 4 2007-01-01 02:00:00 40 1.0 8.8 0 7 F 50 FALSE
# 5 2007-01-01 03:00:00 20 2.1 8.0 0 8 D 100 FALSE
# 6 2007-01-01 04:00:00 30 1.0 8.0 0 8 D 100 FALSE
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)