确定累积和的矢量超过的位置

时间:2018-04-17 13:07:11

标签: r

我有一个累积总和的命名向量:

x <- sort(runif(20, 1, 10), decreasing = T)
names(x) <- LETTERS[1:20] 
cumsums <- cumsum(x)

head(cumsums)
        A         B         C         D         E         F 
9.902633 19.240766 28.531703 37.537920 46.065978 54.380480 

如何识别cumsums的第一个值超过定义阈值(例如25,50,75,90)的位置?

1 个答案:

答案 0 :(得分:1)

对于一次一个阈值,以下内容应该有效:

which(cumsums > 25)[1]

which.max解决方案不同,如果没有NA的元素超过阈值,它将返回cumsums

当然,如果您的矢量非常大或者您需要同时查找多个阈值,这可能不是最有效的解决方案。