我正在尝试找到一个函数来计算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,])