Usando CUT y cuartil para generar saltos en la función R
SiguiendoAlgunos buenos consejos de antes, Ahora estoy escribiendo mi segunda función R y usando una lógica similar. Sin embargo, estoy intentando automatizar un poco más y puede que me esté volviendo demasiado inteligente para mi propio bien.
Quiero dividir a los clientes en quintiles en función del número de pedidos. Aquí está mi código para hacerlo:
# 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
Verá aquí que en mis datos de muestra, creé 200 observaciones, pero solo 197 se enumeran a través detable
. Los 3 que quedan sonNA
Ahora, hay algunos ID de cliente que tienen un 'NA' para quintil. Parece que si se encontraban en la pausa más baja, en este caso, 1, entonces no se incluyeron en la función de corte.
¿Hay alguna manera de hacercut
¿Incluido de todas las observaciones?