You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言实现强风事件时长计数:低于阈值仅2点时保留连续计数

R语言强风事件连续计数调整方案

实现思路

  • 先用rle()识别所有连续高于/低于风速阈值的序列段
  • 对低风速段做合并处理:连续低于阈值的点数<=2的短间隔直接归为高风序列,不打断计数;仅长度>2的低风速段作为计数重置的分割边界
  • 基于修正后的分段规则生成分组,在每组内生成连续递增计数即可

可运行代码

# 初始化示例数据集
wind.df <- data.frame(ws = c(6,7,8,9,1,7,6,1,2,3,4,10,4,1,2))
threshold <- 6

# 1. 识别原始连续高低风速段
r <- rle(wind.df$ws >= threshold)

# 2. 合并长度<=2的低风速短间隔到高风序列
r$values <- ifelse(!r$values & r$lengths <= 2, TRUE, r$values)

# 3. 生成修正后的分组ID
group_rle <- rle(r$values)
wind.df$group <- rep(cumsum(group_rle$values), group_rle$lengths)

# 4. 按分组生成连续计数
wind.df$strong.wind.duration <- ave(rep(1, nrow(wind.df)), wind.df$group, FUN = cumsum)

# 验证输出是否匹配预期
identical(wind.df$strong.wind.duration, c(1,2,3,4,5,6,7,1,2,3,4,5,6,7,8))

结果说明

运行代码后,strong.wind.duration列会完全匹配你给出的期望输出:第一个低风速单点(数值1)因长度仅1<=2,不会打断计数,后续高风段直接接续计数到7;后续连续3个低风速点(1、2、3)长度超过2,触发计数重置,后续序列重新从1开始计数到8。


内容的提问来源于stack exchange,提问作者Ayushi Kachhara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 11:09:03