Децилия по сумме значений в R - PullRequest
0 голосов
/ 21 мая 2018

Я пытаюсь найти функцию для децилирования суммы данных в R. Несмотря на то, что квантильные функции уже встроены, эти функции делят данные таким образом, что каждое ведро будет иметь равное количество значений, тогда как я ищу выводс равной суммой значений.

Пример. Допустим, продажи сделаны на 100 торговых представителей.Rep_1 сделал продажу 1, rep_2 сделал продажу 2 и т. Д.

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

Если я расшифрую данные с помощью функции "квантиль", в каждом сегменте будет 10 торговых представителей, тогда как я хочу, чтобы каждыйведро будет представлять 10% продаж.Таким образом, у децила 10 будет 5 лучших представителей, поскольку они сделали продажу ~ 500 от общей продажи 5050, сделанной всей командой.В следующем сегменте будет 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,])
...