【问题标题】:Calculate number of consecutive day with the same condition in data [duplicate]计算数据中具有相同条件的连续天数[重复]
【发布时间】:2014-05-21 16:21:00
【问题描述】:

我有一个温度数据,我想在这个条件下(温度 > Tmax)获得我所拥有的每一年的连续 4 天数。 作为一个说明性示例,请考虑以下 5 列数据框: "站温年月日"

【问题讨论】:

  • 如果您可以包含一些示例数据,而不仅仅是列名,那就太好了,例如this post。这样更容易找到正确答案。

标签: r


【解决方案1】:

给定:

  • 数据框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

如果您想获得每年的这个值,您需要按年份对数据进行分区。小心处理年份的开始和结束。例如,如果“热浪”在一年结束时开始并在下一年开始时结束。这两个都不会计算在内。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-26
    • 2019-03-28
    • 2021-09-11
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    • 2014-04-21
    相关资源
    最近更新 更多