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

使用带条件的循环计算满足累积占比≥0.95的最小元素个数

R 实现方法

核心逻辑是利用R内置的累加和函数cumsum()快速计算前缀和,再匹配第一个符合阈值要求的位置:

分步实现

  • 计算数据集总求和:total <- sum(x)
  • 计算所有前缀累加和序列:cumulative_sum <- cumsum(x)
  • 匹配第一个占比超过0.95的位置索引:k <- which(cumulative_sum / total > 0.95)[1]

完整可运行代码

# 示例数据集
x <- c(3,4,6,7,8,4,5,3,4,3,5,6)

# 计算最小k
total_sum <- sum(x)
cum_sum <- cumsum(x)
k <- which(cum_sum / total_sum > 0.95)[1]

# 输出结果
print(k)

运行说明

示例数据集的运行结果为12,验证过程:前11个元素累加和为52,占比约为89.7%小于0.95,前12个元素累加和为58,占比为100%首次超过阈值,符合需求。

封装复用版

可以封装为自定义函数适配任意数据集和阈值:

get_min_k <- function(num_vec, threshold = 0.95) {
  total <- sum(num_vec)
  cum_vec <- cumsum(num_vec)
  res <- which(cum_vec / total > threshold)[1]
  # 兼容极端情况:所有元素累加才刚好达到阈值
  return(ifelse(is.na(res), length(num_vec), res))
}

# 测试调用
get_min_k(x)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:24:07