【发布时间】: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
我有一个包含 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
csum_index <- function(v, t=0.8) which(cumsum(v) >= t)[1]
上述函数返回向量v的第一个索引,其元素的累积和大于或等于t。 t 的默认值为 0.8。
csum_index(A)
#[1] 3
csum_index(A,0.9)
#[1] 4
【讨论】: