什么';R中的as.numeric有什么问题?
我搞错了什么?不应该是as.numeric 8 9 10 6 8的结果吗什么';R中的as.numeric有什么问题?,r,R,我搞错了什么?不应该是as.numeric 8 9 10 6 8的结果吗 如何得到正确的结果?您的向量是一个因子。这个问题已经被问了好几次了,例如:。为了将因子转换为数值,您必须首先转换为字符。尝试: > X864291X8X74 [1] 8.0000000000 9.0000000000 10.0000000000 6.0000000000 8.0000000000 10 Levels: 0.0000000000 10.0000000000 12.0000000000 3.000
如何得到正确的结果?您的向量是一个
因子。这个问题已经被问了好几次了,例如:。为了将因子转换为数值,您必须首先转换为字符
。尝试:
> 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
?factor
中的文档说明:
要将系数f
转换为近似其原始数值,
as.numeric(levels(f))[f]
是推荐的,效率略高一些
而不是as.numeric(as.character(f))。
因此,以下方法也适用:
as.numeric(as.character(my_vec))
R中的as.numeric没有什么问题。它完全按照它应该的方式工作;)使用hablar::as_reliable_num
将向量转换为您期望的数字,即8 9 10 6 8。
as.numeric(levels(my_vec))[my_vec]