Я пытаюсь найти функцию для децилирования суммы данных в 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,])