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?

Respuestas a la pregunta(4)

Su respuesta a la pregunta