使用带条件的特殊循环查找元素数量

Finding of amount of elements by using special cycle with condition

我有带有数字值的简单数据集。例如,x<-c(3,4,6,7,8,4,5,3,4,3,5,6)。我需要通过这种方式计算元素的数量:我需要找到最少数量的元素,请满足条件:所有元素的第一个 element/sum 应该大于 0,95 或第一个元素加上第二个 element/sum所有元素都应大于 0,95 等等。例如,3/58<0,95; 3+4/58<0.95; 3+4+6/58<0,95 等等。当它大于 0.95 时我应该停止并计算我使用的 frm 数据集的元素数。我该怎么做?

min(which(cumsum(x)/sum(x) > 0.95))
#[1] 12

这给出了 x 中哪个元素的累计总和超过了 x 总数的 95%。

在这种情况下,x 的总数是 58,其中 95% 是 55.1。在x的第11个元素,累计总和只有58-6 = 52,所以你需要所有12个元素总和超过55.1。