【发布时间】:2015-12-09 15:08:02
【问题描述】:
我正在使用 R 来分析一些包含每日最高和最低温度值的时间序列(1951-2013)。数据结构如下:
YEAR MONTH DAY MAX MIN
1985 1 1 22.8 9.4
1985 1 2 28.6 11.7
1985 1 3 24.7 12.2
1985 1 4 17.2 8.0
1985 1 5 17.9 7.6
1985 1 6 17.7 8.1
我需要根据以下定义找到热浪的频率:连续三天或更长时间,每日最高和最低温度超过研究中所有天的最高和最低温度的 90%期间。
基本上,当最高和最低温度超过阈值时,我想对那些连续天(三天或更长时间)进行子集化。输出将是这样的:
YEAR MONTH DAY MAX MIN
1989 7 18 45.0 23.5
1989 7 19 44.2 26.1
1989 7 20 44.7 24.4
1989 7 21 44.6 29.5
1989 7 24 44.4 31.6
1989 7 25 44.2 26.7
1989 7 26 44.5 25.0
1989 7 28 44.8 26.0
1989 7 29 44.8 24.6
1989 8 19 45.0 24.3
1989 8 20 44.8 26.0
1989 8 21 44.4 24.0
1989 8 22 45.2 25.0
我已尝试以下方法将我的完整数据集子集为仅超过 90% 温度的天数:
HW<- subset(Mydata, Mydata$MAX >= (quantile(Mydata$MAX,.9)) &
Mydata$MIN >= (quantile(Mydata$MIN,.9)))
但是,我陷入了如何仅对满足条件的连续天进行子集化的方法。
【问题讨论】: