Como converter um fator em R

Às vezes você precisa converter explicitamente fatores de texto ou números. Para fazer isso, você usa as funções as.character () ou as.numeric (). Em primeiro lugar, converter o seu instruções vetor em um fator chamado directions.factor (Como você viu anteriormente):

> direções lt; - c ( "Norte", "Oriente", "South", "Sul")> directions.factor lt; - fator (sentidos)> directions.factor [1] norte-sudeste SouthLevels: East Norte Sul

Usar as.character () para converter um fator a um vetor de caracteres:

> As.character (directions.factor) [1] "Norte" "Médio" "Sul" "Sul"

Usar as.numeric () para converter um factor numérico a um vector. Note que isto irá retornar os códigos numéricos que correspondem aos níveis de fator. Por exemplo, "Leste" corresponde a 1, "Norte" corresponde a 2, e assim por diante:

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

Tenha muito cuidado quando você converter fatores com níveis numéricos para um vetor numérico. Os resultados podem não ser o que você espera.

Por exemplo, imagine que você tem um vetor que indica alguns resultados de pontuação de teste com os valores C (9, 8, 10, 8, 9), que você converter em um fator:

> números lt; - fator (c (9, 8, 10, 8, 9))

A olhar para a representação interna de números, usar str ():

> Str (números) Fator w / 3 níveis de "8", "9", "10": 2 1 3 1 2

Isto indica que R armazena os valores conforme C (2, 1, 3, 1, 2) com níveis de associados C ( "8", "9", "10").

image0.jpg

Se você deseja converter números a um vetor de caracteres, os resultados são praticamente como seria de esperar:

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

No entanto, se você simplesmente usar Como. numérico(), o resultado é um vetor das representações de nível internas de seu fator e não os valores originais:

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

A ajuda em R ?fator descreve uma solução para este problema. A solução é para indexar os níveis de factor de si, e, em seguida, para converter a numérico:

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

Este é um exemplo de funções aninhadas em R, em que você passa os resultados de uma função para uma segunda função. funções aninhadas são um pouco como as bonecas russas, onde cada brinquedo é dentro do seguinte:

  • A função interna, as.character (números), contém o texto C ( "8", "9", "10").

  • A função externa, as.numeric (...), faz a conversão final de C (9, 8, 10, 8, 9).

menu