我有一个累积总和的命名向量:
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)的位置?
答案 0 :(得分:1)
对于一次一个阈值,以下内容应该有效:
which(cumsums > 25)[1]
与which.max
解决方案不同,如果没有NA
的元素超过阈值,它将返回cumsums
。
当然,如果您的矢量非常大或者您需要同时查找多个阈值,这可能不是最有效的解决方案。