R: Erstellen einer kategorialen Variablen aus einer numerischen Variablen und benutzerdefinierten / endlosen / einwertigen Intervallen
Ich versuche oft, eine kategoriale Variable aus einer numerischen Variable und einer benutzerdefinierten Menge von Bereichen zu erstellen.
Sagen Sie zum Beispiel, ich habe ein data.frame mit einer numerischen Variablendf$V
und möchte eine neue Variable erstellendf$VCAT
so dass
df$VCAT
= 0 wenndf$V
ist gleich 0df$VCAT
= 1 wenndf$V
liegt zwischen 0 und 10 (d. h. (0,10))df$VCAT
= 2 istdf$V
ist gleich 10 (d. h. [10,10])df$VCAT
= 3 istdf$V
liegt zwischen 10 und 20 (d. h. (10,20))df$VCAT
= 4 istdf$V
ist größer oder gleich 20 (d. h. [20, Inf])Ich mache das gerade, indem ich die "Scoring-Funktion" selbst fest programmiere, indem ich etwas mache wie:
df = data.frame(V = seq(1,100))
df = df %>% mutate(VCAT = (V>0) + (V==10) + 2*(V>10) + (V>=20))
Ich frage mich, ob es einen einfacheren Weg gibt, dies in R zu tun, vorzugsweise mitdplyr
(damit ich Befehle verketten kann). Im Idealfall suche ich eine kurze Funktion, die in @ verwendet werden kamutate
das wird in der Variablen nehmenV
und ein Vektor, der die Bereiche beschreibt, wie zBbuckets
. Beachten Sie, dassbuckets
kann hier möglicherweise nicht optimal beschrieben werden, da mir nicht klar ist, wie Benutzer die Endpunkte der Bereiche anpassen können.