如何计算列总数的 80%?并得到代表这 80% 的所有线
How can I calculate the 80% of the total of a column ? And get all the line that represents this 80%
所以我有一个 data.frame 并且我只想获取代表一列总数的 80% 的行。
这是我的例子 data.frame :
我已经尝试了分位数,但这并没有给我预期的结果。
x <- 1
total <- 0
while (total <= sum(reference$CA) * 80 / 100) {
total <- total + as.double(reference[x, "CA"])
x = x + 1
}
reference_80 <- reference[(1:x - 1),]
我可以想象 R 可以提供这样的东西,但我还没有找到它,而且如果我的 data.frame 非常大,我的代码会花费很多时间,因为我'我正在使用一个循环,这就是为什么我想知道是否有一个函数可以完成这项工作。
试试这个:
reference[cumsum(reference$CA) < sum(reference$CA) * .8,]
所以我有一个 data.frame 并且我只想获取代表一列总数的 80% 的行。
这是我的例子 data.frame :
我已经尝试了分位数,但这并没有给我预期的结果。
x <- 1
total <- 0
while (total <= sum(reference$CA) * 80 / 100) {
total <- total + as.double(reference[x, "CA"])
x = x + 1
}
reference_80 <- reference[(1:x - 1),]
我可以想象 R 可以提供这样的东西,但我还没有找到它,而且如果我的 data.frame 非常大,我的代码会花费很多时间,因为我'我正在使用一个循环,这就是为什么我想知道是否有一个函数可以完成这项工作。
试试这个:
reference[cumsum(reference$CA) < sum(reference$CA) * .8,]