我有一个数字向量,x
。我想找到构成sum(x)
的至少y%的最少数量的元素。这样做的好方法是什么?
例如,假设
x<-c(4,10,3,12,3,1,5,9,1,2,20,4)
sum(x)
= 74.因此,构成至少30%总和的元素数量最少为2,因为{20}占总和的27%,{20,12}组成46%。
答案 0 :(得分:1)
也许:
min(which(cumsum(rev(sort(x))) > sum(x)*.3))
#[1] 2
sort
按递增顺序返回,并且您希望按降序排列,因此需要rev
或等效的内容。 which
会在2之后返回所有位置,因此需要min
。