【问题标题】:build a function for which the cumulative sum is bigger or equal to some constant构建一个累积和大于或等于某个常数的函数
【发布时间】:2016-06-25 16:09:54
【问题描述】:

我有一个包含 n 个元素的向量。元素的总和为 1。我想要一个函数,将向量作为输入并返回向量元素的数量,使它们的总和大于或等于 0.80。 例如,考虑以下向量:

A <- as.matrix(c(0.5, 0.2, 0.15, 0.10, 0.05)) 

函数必须返回 3,因为 0.5 + 0.2 + 0.15 >= 0.80

【问题讨论】:

    标签: r function cumulative-sum


    【解决方案1】:
    csum_index <- function(v, t=0.8) which(cumsum(v) >= t)[1]
    

    上述函数返回向量v的第一个索引,其元素的累积和大于或等于tt 的默认值为 0.8。

    csum_index(A)
    #[1] 3
    csum_index(A,0.9)
    #[1] 4
    

    【讨论】:

      猜你喜欢
      • 2015-09-19
      • 2021-12-28
      • 1970-01-01
      • 2019-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-04
      • 1970-01-01
      相关资源
      最近更新 更多