构建一个累积和大于或等于某个常数的函数
build a function for which the cumulative sum is bigger or equal to some constant
我有一个包含 n 个元素的向量。元素的总和是 1。我想要一个函数,它将向量和 return 向量元素的数量作为输入,使得它们的总和大于或等于 0.80。
例如,考虑以下向量:
A <- as.matrix(c(0.5, 0.2, 0.15, 0.10, 0.05))
函数必须 return 3,因为 0.5 + 0.2 + 0.15 >= 0.80
csum_index <- function(v, t=0.8) which(cumsum(v) >= t)[1]
上述函数returns向量v
的第一个索引,其元素的累积和大于或等于t
。 t
的默认值为 0.8。
csum_index(A)
#[1] 3
csum_index(A,0.9)
#[1] 4
我有一个包含 n 个元素的向量。元素的总和是 1。我想要一个函数,它将向量和 return 向量元素的数量作为输入,使得它们的总和大于或等于 0.80。 例如,考虑以下向量:
A <- as.matrix(c(0.5, 0.2, 0.15, 0.10, 0.05))
函数必须 return 3,因为 0.5 + 0.2 + 0.15 >= 0.80
csum_index <- function(v, t=0.8) which(cumsum(v) >= t)[1]
上述函数returns向量v
的第一个索引,其元素的累积和大于或等于t
。 t
的默认值为 0.8。
csum_index(A)
#[1] 3
csum_index(A,0.9)
#[1] 4