Verwenden von CUT und Quartile, um Unterbrechungen in der R-Funktion zu erzeugen
Im Anschlusseinige gute Ratschläge von vorIch schreibe jetzt meine 2. R-Funktion und benutze eine ähnliche Logik. Ich versuche jedoch, ein bisschen mehr zu automatisieren und werde zu schlau für mein eigenes Wohl.
Ich möchte die Kunden basierend auf der Anzahl der Bestellungen in Quintile aufteilen. Hier ist mein Code, um dies zu tun:
# 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
Sie werden sehen, dass ich in meinen Beispieldaten 200 Beobachtungen erstellt habe, aber nur 197 über aufgelistet sindtable
. Die 3 weggelassenen sindNA
Nun gibt es einige Client-IDs, die eine 'NA' für Quintil haben. Anscheinend waren sie in der niedrigsten Pause, in diesem Fall 1, nicht in der Schnittfunktion enthalten.
Gibt es einen Weg zu machencut
Einschließlich aller Beobachtungen?