Sådan Konverter en faktor i R

Nogle gange er du nødt til eksplicit at konvertere faktorer til enten tekst eller tal. For at gøre dette, skal du bruge funktionerne as.character () eller as.numeric (). Først konvertere dine anvisninger vektor i en faktor kaldet directions.factor (som du så tidligere):

> Retninger <- c ("Nord", "Øst", "Syd", "Syd")
> Directions.factor <- faktor (retninger)
> Directions.factor
[1] Nordøst Syd Syd
Niveauer: East North South

Brug as.character () til at konvertere en faktor til en vektor karakter:

> As.character (directions.factor)
[1] "Nord" "Øst" "Syd" "Syd"

Brug as.numeric () til at konvertere en faktor til en numerisk vektor. Bemærk, at dette vil returnere de numeriske koder, der svarer til faktorniveauerne. For eksempel, "Øst" svarer til 1, "Nord" svarer til 2, og så videre:

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

Vær meget forsigtig, når du konverterer faktorer med numeriske niveauer til en numerisk vektor. Resultaterne kan ikke være, hvad du forventer.

For eksempel forestille sig du har en vektor, der angiver nogle test score resultater med de værdier c (9, 8, 10, 8, 9), som du konvertere til en faktor:

> Tal <- faktor (c (9, 8, 10, 8, 9))

At se på den interne repræsentation af tal, brug str ():

> str (numre)
Faktor m / 3 niveauer "8", "9", "10": 2 1 3 1 2

Dette indikerer, at R lagrer værdierne som C (2, 1, 3, 1, 2) med tilhørende niveauer af C ("8", "9", "10").

Sådan Konverter en faktor i R

Hvis du ønsker at konvertere tal til en vektor karakter, at resultaterne er temmelig meget som du ville forvente:

> as.character (numre)
[1] "9" "8" "10" "8" "9"

Men hvis du bare bruge som. numerisk (), dit resultat er en vektor af de interne niveau repræsentationer af din faktor og ikke de oprindelige værdier:

> as.numeric (numre)
[1] 2 1 3 1 2

R hjælp på? Faktor beskriver en løsning på dette problem. Løsningen er at indeksere indholdet med faktoren selv, og derefter at konvertere til numerisk:

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

Dette er et eksempel på indlejrede funktioner i R, hvor du passerer resultaterne af en funktion til en anden funktion. Indlejrede funktioner er lidt ligesom de russiske nesting dukker, hvor hver legetøjet er inde i næste:

  • Den indre funktion, as.character (tal), indeholder teksten c ("8", "9", "10").
  • Den ydre funktion, as.numeric (...), gør den endelige omdannelse til c (9, 8, 10, 8, 9).

© 2021 Zajacperrone.com | Contact us: webmaster# zajacperrone.com