ti-enxame.com

O que há de errado com as.numeric em R?

> X864291X8X74
[1] 8.0000000000  9.0000000000  10.0000000000 6.0000000000  8.0000000000 
10 Levels: 0.0000000000 10.0000000000 12.0000000000 3.0000000000 4.0000000000 6.0000000000 ... NULL

> as.numeric(X864291X8X74)

[1] 8 9 2 6 8

o que eu entendi errado? não deve ser o resultado de as.numeric 8 9 10 6 8?

Como obtenho o resultado correto?

11
teGuy

Seu vetor é um factor. Esta pergunta já foi feita algumas vezes, por exemplo: aqui , aqui , aqui . Para converter um fator em numérico, você precisará converter para character primeiro. Tentar:

as.numeric(as.character(my_vec))
27
Arun

A documentação em ?factor Afirma:

Para transformar um fator f em aproximadamente seus valores numéricos originais, as.numeric(levels(f))[f] é recomendado e um pouco mais eficiente que as.numeric(as.character(f)).

Portanto, o seguinte também funciona:

as.numeric(levels(my_vec))[my_vec]
2
Blue Magister