【发布时间】:2016-10-04 16:17:33
【问题描述】:
我使用的 cods 可以连续几天检测到热浪,但我不知道如何让 cods 选择在每个热编织事件中记录的最高平均温度。 我的数据的标题(Period1):年月日平均值MAX MIN
我的代码是:
setDT(Period1)
Period1[, hotday := +(Period1$MAX>=(quantile(Period1$MAX,.9, na.rm = T, type = 6)) & Period1$MIN>=(quantile(Period1$MIN,.8, na.rm = T, type = 6)))
][, hw.length := with(rle(hotday), rep(lengths,lengths))
][hotday==0, hw.length:=0]
代码结果:
YEAR MONTH DAY MEAN MAX MIN hotday hw.length
1 2005 7 1 34.7 42 28 0 0
2 2005 7 2 35 41.8 28.8 0 0
3 2005 7 3 34.6 41.5 27 1 2
4 2005 7 4 35.4 43 27.6 1 2
5 2005 7 5 35.4 42 27.4 0 0
6 2005 7 6 34.4 42.2 27.7 0 0
7 2005 7 7 34 39.3 28.6 1 4
8 2005 7 8 34.9 40.6 29 1 4
9 2005 7 9 35.7 41 28.2 1 4
10 2005 7 10 35.1 42.2 28.5 1 4
11 2005 7 11 34.9 42.5 29 0 0
12 2005 7 12 35.5 43.2 28 0 0
13 2005 7 13 36.1 43 29.2 1 3
14 2005 7 14 36.4 43.4 32 1 3
15 2005 7 15 36.5 44.5 29.2 1 3
16 2005 7 16 36.2 42.6 31.2 0 0
17 2005 7 17 34.6 40 30 0 0
18 2005 7 18 33.7 41 28.8 0 0
对于2005/7/3 和2005/7/4 上的热浪,最高的是35.6,其中第二次热浪盯着2005/7/7 并在2005/7/10 结束,最高平均值是35.7。考虑到连续几天,我将不胜感激有关如何提取每个热浪的最高平均值的任何想法。
【问题讨论】:
-
当你说你可以“检测到热浪”时,你知道热浪的开始和结束日期吗?
-
开始是最高温度和最低温度分别超过 90 度和 80 度时,结束是该条件停止时
-
在提供的示例数据上从上面运行代码,不会为
hotday和hw.length变量提供相同的结果.....这两个变量的所有内容都将设置为零. -
感谢数据是一个例子
标签: r data.table