Usando CUT e Quartile para gerar quebras na função R
Seguealguns ótimos conselhos de antes, Agora estou escrevendo minha segunda função R e usando uma lógica semelhante. No entanto, estou tentando automatizar um pouco mais e talvez esteja ficando esperto demais para meu próprio bem.
Eu quero dividir os clientes em quintis com base no número de pedidos. Aqui está o meu código para fazer isso:
# sample data
clientID <- round(runif(200,min=2000, max=3000),0)
orders <- round(runif(200,min=1, max=50),0)
df <- df <- data.frame(cbind(clientID,orders))
#function to break them into quintiles
ApplyQuintiles <- function(x) {
cut(x, breaks=c(quantile(df$orders, probs = seq(0, 1, by = 0.20))),
labels=c("0-20","20-40","40-60","60-80","80-100"))
}
#Add the quintile to the dataframe
df$Quintile <- sapply(df$orders, ApplyQuintiles)
table(df$Quintile)
0-20 20-40 40-60 60-80 80-100
40 39 44 38 36
Você verá aqui que, em meus dados de amostra, criei 200 observações, mas apenas 197 estão listadas viatable
. Os 3 restantes sãoNA
Agora, existem alguns IDs de clientes que possuem um 'NA' para quintil. Parece que se eles estavam no menor intervalo, neste caso, 1, então eles não foram incluídos na função de corte.
Existe uma maneira de fazercut
inclusive de todas as observações?