Cómo convertir en un factor r

Video: Statistics with R: Convert data type FACTOR to NUMERIC and similar operations

A veces es necesario convertir explícitamente los factores de 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):

gt; direcciones lt; - c ("norte", "Este", "Sur", "Sur") Gt; directions.factor lt; - factor de (direcciones) gt; directions.factor [1] North East SouthLevels Sur: Este Del Norte Sur

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

gt; as.character (directions.factor) [1] "norte" "Este" "Sur" "Sur"

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

gt; 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 los esperados.

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), el cual se convierte a un factor:

gt; números lt; - factor de (C (9, 8, 10, 8, 9))

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

Video: Changing a Numeric Variable to Categorical Variable in R (R Tutorial 5.4)

gt; str (números) Factor w / 3 niveles "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”).

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

Video: CONVERTIR DECIMAL A FRACCIÓN Super facil

gt; as.character (números) [1] "9" "8" "10" "8" "9"

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

Video: Análisis de La Varianza usando R Commander

gt; as.numeric (números) [1] 2 1 3 1 2

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

gt; as.numeric (as.character (números)) [1] 9 8 10 8 9

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

  • La función interior, 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).

Artículos Relacionados