Cómo convertir un factor en la r

A veces es necesario convertir explícitamente factores ya sea texto o números. Para ello, se utilizan las funciones as.character () o as.numeric (). En primer lugar, convertir su direcciones vector en un factor llamado directions.factor (como se vio anteriormente):

> Direcciones lt; - c ("Norte", "Medio", "Sur", "Sur")> directions.factor lt; - los factores (direcciones)> directions.factor [1] North East SouthLevels Sur: Este Norte Sur

Usar as.character () para convertir un factor a un vector de caracteres:

> As.character (directions.factor) [1] "Norte" "Este" "Sur" "Sur"

Usar as.numeric () para convertir un factor a un vector numérico. Tenga en cuenta que esto va a devolver los códigos numéricos que corresponden a los niveles de los factores. Por ejemplo, "Este" corresponde a 1, "Norte" corresponde a 2, etcetera:

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

Tenga mucho cuidado al convertir factores con niveles numéricos de un vector numérico. Los resultados pueden no ser lo que usted espera.

Por ejemplo, imagine que tiene un vector que indica algunos resultados calificación en las pruebas con los valores c (9, 8, 10, 8, 9), que convierte a un factor:

> Números lt; - factor de (c (9, 8, 10, 8, 9))

Para ver la representación interna de números, usar str ():

> Str (números) Factor w / 3 niveles de "8", "9", "10": 2 1 3 1 2

Esto indica que R almacena los valores como c (2, 1, 3, 1, 2) con los niveles asociados de c ("8", "9", "10").

imagen0.jpg

Si desea convertir números a un vector de caracteres, los resultados son más o menos como era de esperar:

> As.character (números) [1] "9" "8" "10" "8" "9"

Sin embargo, si usted utiliza simplemente como. (numérico), el resultado es un vector de las representaciones a nivel interno de su factor de y no los valores originales:

> As.numeric (números) [1] 2 1 3 1 2

El R ayuda en ?factor describe una solución a este problema. La solución es índice de los niveles por el factor de sí mismo, y luego para convertir a numérico:

> As.numeric (as.character (números)) [1] 8 9 10 8 9

Este es un ejemplo de funciones anidadas en I, en el que se pasa de los resultados de una función a una segunda función. Funciones anidadas son un poco como las muñecas rusas, donde cada juguete es dentro de la siguiente:

  • La función interna, as.character (números), contiene el texto c ("8", "9", "10").

  • La función externa, as.numeric (...), hace la conversión final a c (9, 8, 10, 8, 9).




» » » » Cómo convertir un factor en la r