按R

时间:2018-05-21 20:45:14

标签: r quantile

我正在尝试找到一个函数来计算R中的数据总和。虽然已经内置了分位数函数,但这些函数以每个存储桶具有相同数量的值的方式划分数据,而我正在寻找输出具有相等的价值总和。

示例 - 假设我有100名销售代表的销售。 Rep_1的销售额为1,rep_2的销售额为2,依此类推。

Rep_ID Sales
Rep1     1
Rep2     2
Rep3     3
....

如果我通过“分位数”功能对数据进行十分位数,每个桶中将有10个销售代表,而我希望每个桶代表10%的销售额。所以十分位数10将有前5名代表,因为他们在整个团队制作的5050总销售额中销售了约500个。下一个桶将有6个代表,类似的后续桶将有更多的代表,但每个桶的总和将增加到总销售额的10%。

我知道代码很简单,但我只是想知道它是否有更灵活和强大的内置函数呢?

df = as.data.frame(list(paste0("rep", 100:1), 100:1), col.names = c("Rep_ID", "Sales"))

df$decile = ceiling((1 - (cumsum(df$Sales)/sum(df$Sales)))*10)
print(df[1:10,])

0 个答案:

没有答案