die Codierung der Variablenwerte in Klassen mit R
Habe ich eine Reihe von Daten, die ich brauche, um code-Werte von bestimmten Variablen (numerisch) in 3 Klassen.
Meine Daten-set ist ähnlich zu dieser, hat aber 60 weitere Variablen:
anim <- c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
wt <- c(181,179,180.5,201,201.5,245,246.4,189.3,301,354,369,205,199,394,231.3)
data <- data.frame(anim,wt)
> data
anim wt
1 1 181.0
2 2 179.0
3 3 180.5
4 4 201.0
5 5 201.5
6 6 245.0
7 7 246.4
8 8 189.3
9 9 301.0
10 10 354.0
11 11 369.0
12 12 205.0
13 13 199.0
14 14 394.0
15 15 231.3
Ich brauche die code-Werte der variable "wt" in 3 Klassen: (wt >= 179 & gew < 200) = 1; (wt >= 200 & gew < 300) = 2; (wt > 300) = 3
was sollte mir dieser
> data2
anim wt SWT
1 1 181.0 1
2 2 179.0 1
3 3 180.5 1
4 4 201.0 2
5 5 201.5 2
6 6 245.0 2
7 7 246.4 2
8 8 189.3 1
9 9 301.0 3
10 10 354.0 3
11 11 369.0 3
12 12 205.0 2
13 13 199.0 1
14 14 394.0 3
15 15 231.3 2
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
cut
Methode, wie von @Greg ist wahrscheinlich das, was Sie hier wollen. Eine Sache zu beachten ist, dasscut
gibt einen Faktor, der standardmäßig können Sie unterdrücken, indem Sie die Versorgunglabels = FALSE
die Rückkehr der integer-Werte:Alternativ, wenn Ihr Schnitt nicht sich verleihen zu natürlichen Pausen, die Sie verwenden können
ifelse()
. Sie können "nest", die ifelse-Anweisungen ähnlich wie Excel. Ich benutze "mit" zu reduzieren auf die Eingabe erforderlich:as.numeric
um integer-Werte group.cut
zurückkehren würde, die numerische Werte, bis auf der Suche in der Hilfe-Datei für die Frage. Ich habe früher immer dieas.numeric()
- Methode sowie...Cut
ist entworfen, um zu tun dies für Sie, so verwenden Sie es.Können Sie versuchen
cut
EDIT: Feste Gruppe - rechts = FALSE, entledigte split Beispiel.
right
parameter enthalten, die entweder der linken oder rechten Seite des Intervalls. Ich denke, dass meine Links/rechts parameter ist aus deinem Beispiel.labels = FALSE
ist bevorzugt überas.numeric()
für diejenigen, die sich aufregen über solche Dinge.Ich denke, dass Greg ' s Antworten Abdeckung "standard operating procedure", aber ich finde viele Verwendungen für die findInterval Funktion als gut. Es natürlich wieder eine Nummer, die zur Identifizierung der Intervall in der zweiten argument.
Nur um zu zeigen, eine Alternative (ähnlich wie recode im SPSS) - Methode aus dem Paket Auto:
Nur der Vollständigkeit halber und zur info, die classInt Paket (auf CRAN) ist eine weitere praktische Art und Weise zu klassifizieren, die zahlen in Klassen.