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

如何统计R语言向量中各元素的连续数字个数?

R语言向量元素连续数字序列长度统计方案

针对给定的向量:

vector <- c("236", "234", "", "12", "24", "3")

需要统计每个元素中连续递增1的数字序列的最长长度(空字符串或无连续数字时返回0),期望输出2 3 0 2 0 0。

可以通过自定义函数结合批量处理实现:

# 定义统计函数
count_consecutive <- function(s) {
  if (s == "") return(0)
  nums <- as.integer(strsplit(s, "")[[1]])
  if (length(nums) == 1) return(0)
  diffs <- diff(nums)
  is_consec <- diffs == 1
  rle_res <- rle(is_consec)
  seq_lengths <- rle_res$lengths[rle_res$values] + 1
  max(seq_lengths, 0)
}

# 处理目标向量并输出结果
vector <- c("236", "234", "", "12", "24", "3")
result <- sapply(vector, count_consecutive)
cat(result, "\n")

运行后会输出符合要求的结果:

2 3 0 2 0 0

逻辑说明

  • 空字符串直接返回0;
  • 将字符串拆分为单个数字并转为数值类型;
  • 单个数字无相邻元素,返回0;
  • 计算相邻数字的差值,标记出差值为1的位置(即连续递增1的情况);
  • 用rle()函数识别连续的“连续递增”片段,片段长度加1即为对应数字序列的长度;
  • 取所有有效序列的最长长度,无有效序列则返回0。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 10:35:24