1
我有一個有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
我有一個有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
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
謝謝@RHertel! –