R中的as.numeric有什么问题?

时间:2013-02-21 22:30:26

标签: 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

我误解了什么?不应该是as.numeric 8 9 10 6 8的结果?

如何获得正确的结果?

2 个答案:

答案 0 :(得分:23)

你的矢量是factor。这个问题已被问过很多次,例如:hereherehere。要将因子转换为数字,您必须先转换为character。尝试:

as.numeric(as.character(my_vec))

答案 1 :(得分:2)

?factor州的文件:

  

要将因子f转换为大约其原始数值,   建议as.numeric(levels(f))[f],效率稍高   比as.numeric(as.character(f)).

所以以下内容也是如此:

as.numeric(levels(my_vec))[my_vec]