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

如何计算R语言中数值序列里连续n个0的出现次数?

计算序列中连续0的出现次数(R语言实现)

R基础库中没有专门直接完成这个需求的函数,但可以借助**游程编码(Run-Length Encoding)**的思路,用基础函数快速实现,核心工具是rle()函数。

实现步骤与代码

  1. 首先用rle()处理序列,识别连续重复的片段:
# 把原序列转换为布尔值(标记是否为0),再计算游程编码
rle_zero <- rle(dat == 0)

rle()会返回一个列表,其中values表示连续重复的值(这里是TRUE/FALSE,对应是否为0),lengths表示对应值连续出现的次数。

  1. 筛选出连续0的片段长度,并统计各长度的出现次数:
# 提取所有连续0的长度
zero_run_lengths <- rle_zero$lengths[rle_zero$values]

# 统计不同连续长度的0出现的次数
table(zero_run_lengths)

运行后会输出类似1:5 2:3 4:1的结果,代表连续1个0出现5次,连续2个0出现3次,连续4个0出现1次。

  1. 若要统计特定n个连续0的出现次数,直接用求和筛选:
# 示例:统计连续3个0的出现次数
sum(zero_run_lengths == 3)

补充说明

如果习惯使用tidyverse工具链,也可以用dplyr+tibble实现更结构化的结果,但基础包的方法无需额外依赖,效率足够处理大多数场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 01:20:57