12
> 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 的结果吗?

我怎样才能得到正确的结果?

4

2 回答 2

27

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

as.numeric(as.character(my_vec))
于 2013-02-21T22:32:40.647 回答
2

文件在?factor状态:

建议将因子转换f为近似其原始数值, as.numeric(levels(f))[f]并且比as.numeric(as.character(f)).

所以下面的工作也是如此:

as.numeric(levels(my_vec))[my_vec]
于 2013-02-21T22:56:15.670 回答