You need to enable JavaScript to run this app. 如何在R语言中统计数值向量的前导零个数
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言中统计数值向量的前导零个数

R语言统计向量前导零数量的实现方法

我们需要统计数值向量起始位置连续出现的零的个数,可通过以下两种常用方案实现:


方案1:基础R实现(性能更优)

核心逻辑是找到第一个非零元素的位置,减1即为前导零数量,同时兼容全零向量的边界场景:

# 自定义统计函数
count_leading_zeros <- function(x) {
  if (all(x == 0)) {
    return(length(x))
  }
  return(min(which(x != 0)) - 1)
}

# 示例测试
vect1 <- c(0, 0, 0, 60, 40, 80, 0)
vect2 <- c(100, 0, 0, 80, 40)
vect3 <- c(0,0,1,2,3)
vect4 <- c(0,0,0,0) # 全零测试用例

count_leading_zeros(vect1) # 返回3
count_leading_zeros(vect2) # 返回0
count_leading_zeros(vect3) # 返回2
count_leading_zeros(vect4) # 返回4

方案2:基于rle函数实现(写法更简洁)

利用R内置的rle()函数统计连续重复值的特性,直接读取首段连续零的长度即可:

count_leading_zeros_rle <- function(x) {
  rle_res <- rle(x)
  ifelse(rle_res$values[1] == 0, rle_res$lengths[1], 0)
}

# 测试效果和方案1完全一致
count_leading_zeros_rle(vect1) # 返回3
count_leading_zeros_rle(vect2) # 返回0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 08:15:03