Kategorisieren numerische variable mit mutieren
Ich würde gerne eine Kategorisierung numerische variable in meinem data.frame
Objekt mit der Verwendung von dplyr
(und habe keine Ahnung, wie es zu tun).
Ohne dplyr
würde, würde ich wahrscheinlich etwas wie:
df <- data.frame(a = rnorm(1e3), b = rnorm(1e3))
df$a <- cut(df$a , breaks=quantile(df$a, probs = seq(0, 1, 0.2)))
und es wäre getan. Allerdings habe ich dringend vorziehen, es zu tun mit der Verwendung von einigen dplyr
Funktion (mutate
, nehme ich an) in der chain
Folge von anderen Taten, die ich tun, führen Sie über meine data.frame
.
- Vermutung (von google und dem Lesen der online-Anleitung, ich habe noch nie verwendet
dplyr
), würde ich sagenmutate( df , a = cut( a , breaks = quantile( a , probs = seq( 0 , 1 , 0.2 ) ) ) )
... - Nope =)
df %.% mutate(df, a = cut(a, breaks = quantile(a, probs = seq(0,1,0.2))))
zurückError: unsupported type for column 'df' (VECSXP, classes = data.frame)
- Mea culpa! In der Eile habe ich vergessen zu entfernen
df
immutate
während der Verwendung%.%
chain
Sequenz... ich bitte um Entschuldigung und danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
geben:
dplyr
profitieren tundf %.% mutate( a = ... )
überdf <- mutate( df , a = ... )
. Ändert sich durch die Bezugnahme der erste Weg?data.farme
- anstelle der Verwendung von verschachtelten Funktionen, Sie können schreiben Sie Sie der Reihe nach mit dem Einsatz von%.%
- und - deshalb - Las-code in ein von-Links-nach-rechts Art und Weise (nicht:Den
ggplot2
Paket hat 3 Funktionen, dass die Arbeit gut für diese Aufgaben:cut_number()
: Macht n-Gruppen mit (annähernd) gleiche Anzahl von Beobachtungencut_interval()
: Macht n-Gruppen mit gleicher Reichweitecut_width
: Gruppen von BreiteMein go-to
cut_number()
da diese Nutzungen gleichmäßig verteilt Quantile für die Gruppierung von Beobachtungen. Hier ein Beispiel mit Daten verzerrt.Erstellt am 2018-11-01 durch die reprex Paket (v0.2.1)
dplyr
Ketten?