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

R语言如何统计数据列中连续3次及以上COLD事件的发生次数

解决方案

你可以直接用R内置的rle()(游程长度编码)函数实现需求,不需要手动写循环,代码如下:

# 读取csv数据,check.names=FALSE保留原始列名
df <- read.csv("你的文件路径.csv", stringsAsFactors = FALSE, check.names = FALSE)

# 定义单列连续COLD统计函数
count_cold_event <- function(col) {
  # 转换为逻辑向量:仅等于COLD且非NA的位置为TRUE
  cold_flag <- !is.na(col) & col == "COLD"
  # 计算游程
  rle_res <- rle(cold_flag)
  # 统计连续≥3次COLD的事件数
  sum(rle_res$lengths >= 3 & rle_res$values)
}

# 对1k~5k列批量应用函数,得到结果
res <- sapply(df[, c("1k", "2k", "3k", "4k", "5k")], count_cold_event)

# 打印结果
print(res)

结果验证

针对你提供的样例数据,上述代码输出结果为:

1k 2k 3k 4k 5k 
 1  0  0  2  0 

和你预期的结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:15:03