【发布时间】:2014-05-21 16:21:00
【问题描述】:
我有一个温度数据,我想在这个条件下(温度 > Tmax)获得我所拥有的每一年的连续 4 天数。 作为一个说明性示例,请考虑以下 5 列数据框: "站温年月日"
【问题讨论】:
-
如果您可以包含一些示例数据,而不仅仅是列名,那就太好了,例如this post。这样更容易找到正确答案。
标签: r
我有一个温度数据,我想在这个条件下(温度 > Tmax)获得我所拥有的每一年的连续 4 天数。 作为一个说明性示例,请考虑以下 5 列数据框: "站温年月日"
【问题讨论】:
标签: r
给定:
df每天都有完整的记录研究时间段df$Temp带温度的字段min_temp,最低温度,在df$Temp > min_temp中测试
min_days,最少连续天数这将产生该时间段内“热浪”的数量:
count.heat.waves <- function(df, min_temp, min_days) {
sum(with(rle(df$Temp > min_temp), values & lengths >= min_days))
}
例如:
data(airquality)
count.heat.waves(airquality, 70, 4) # yields 3
如果您想获得每年的这个值,您需要按年份对数据进行分区。小心处理年份的开始和结束。例如,如果“热浪”在一年结束时开始并在下一年开始时结束。这两个都不会计算在内。
【讨论】: