Wie Konvertieren ein Faktor in R

Manchmal müssen Sie explizit Faktoren konvertieren entweder Text oder Zahlen. Dazu verwenden Sie die Funktionen as.character () oder as.numeric (). Zuerst konvertieren Sie Ihre Richtungen Vektor, in einen Faktor genannt directions.factor (Wie Sie bereits gesehen haben):

> Richtungen lt; - c ( "Nord", "Ost", "Süd", "Süd")> directions.factor lt; - Faktor (Richtungen)> directions.factor [1] Nord Ost Süd SouthLevels: Ost-Nord-Süd

Benutzen as.character () ein Faktor, um ein Zeichen Vektor zu konvertieren:

> As.character (directions.factor) [1] "Nord" "Ost" "Süd" "Süd"

Benutzen as.numeric () einen Faktor in einen numerischen Vektor zu konvertieren. Beachten Sie, dass dies die numerischen Codes zurück, die zu den Faktorstufen entsprechen. Beispielsweise, "Osten" entspricht 1, "Nördlich" entspricht 2, und so weiter:

> As.numeric (directions.factor) [1] 1 2 3 3

Seien Sie sehr vorsichtig, wenn Sie Faktoren, die mit numerischen Ebenen in einen numerischen Vektor konvertieren. Die Ergebnisse möglicherweise nicht, was Sie erwarten.

Zum Beispiel, stellen Sie sich einen Vektor haben, die einige Test-Ergebnis Ergebnisse mit den Werten zeigt c (9, 8, 10, 8, 9), die Sie konvertieren zu einem Faktor:

> Zahlen lt; - Faktor (c (9, 8, 10, 8, 9))

Um sich auf die interne Darstellung Nummern, benutzen str ():

> Str (Zahlen) Faktor w / 3 Ebenen "8", "9", "10": 2 1 3 1 2

Dies zeigt an, dass R speichert die Werte als c (2, 1, 3, 1, 2) mit den dazugehörigen Ebenen c ( "8", "9", "10"),.

bild0.jpg

Wenn Sie konvertieren möchten Nummern zu einem Zeichen-Vektor, sind die Ergebnisse ziemlich viel wie man erwarten würde:

> As.character (Zahlen) [1] "9" "8" "10" "8" "9"

Wenn Sie jedoch einfach nutzen wie. numerisch (), Ihr Ergebnis ist ein Vektor der internen Ebene Darstellungen Ihrer Faktor und nicht die ursprünglichen Werte:

> As.numeric (Zahlen) [1] 1 2 3 1 2

Die R-Hilfe bei ?Faktor beschreibt für dieses Problem eine Lösung. Die Lösung ist die Ebenen um den Faktor zu indizieren selbst und dann in numerische zu konvertieren:

> As.numeric (as.character (Zahlen)) [1] 9 8 10 8 9

Dies ist ein Beispiel für verschachtelte Funktionen in R, in dem Sie die Ergebnisse einer Funktion zu einer zweiten Funktion übergeben. Verschachtelte Funktionen sind ein bisschen wie die russischen Puppen, wobei jedes Spielzeug in der nächsten ist:

  • Die innere Funktion, as.character (Zahlen), enthält den Text c ( "8", "9", "10"),.

  • Die äußere Funktion, as.numeric (...), tut die endgültige Umstellung auf c (9, 8, 10, 8, 9).

Menü