所以我有一个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非常大,那么我的代码会花费很多时间,因为我正在使用循环这就是为什么我想知道是否有一个函数可以完成这项工作。
答案 0 :(得分:1)
尝试一下:
reference[cumsum(reference$CA) < sum(reference$CA) * .8,]