R 将因子转换为数值,给出奇数结果
我有一个数据框,我需要将两个变量从因子转换成数值变量。我有一个R 将因子转换为数值,给出奇数结果,r,R,我有一个数据框,我需要将两个变量从因子转换成数值变量。我有一个 df$QTY.SHIPPED=as.numeric(df$QTY.SHIPPED) df$PRE.TAX.TOTAL.=as.numeric(df$PRE.TAX.TOTAL.) 装运的数量换算得很好。因为它已经是整数格式。然而,税前总额。转换不好 PRE.TAX.TOTAL.(Factor) PRE.TAX.TOTAL.(Numerical) 57.8
df$QTY.SHIPPED=as.numeric(df$QTY.SHIPPED)
df$PRE.TAX.TOTAL.=as.numeric(df$PRE.TAX.TOTAL.)
装运的数量换算得很好。因为它已经是整数格式。然而,税前总额。转换不好
PRE.TAX.TOTAL.(Factor) PRE.TAX.TOTAL.(Numerical)
57.8 3856
210 2159
有人知道为什么会这样转变吗
谢谢先转换为字符,然后再转换为数字。否则,它将只是转换为对因子进行编码的基础整数
> v<-factor(c("57.8","82.9"))
> as.numeric(v)
[1] 1 2
> as.numeric(as.character(v))
[1] 57.8 82.9
>v作为数字(v)
[1] 1 2
>as.数字(as.字符(v))
[1] 57.8 82.9
您实际上可以阅读文档。在控制台中键入?因子
警告
一个因素的解释取决于代码和参数
“级别”属性。请注意,仅将因素与相同因素进行比较
一组级别(以相同的顺序)。特别是,如所应用的
对于一个因素来说是没有意义的,并且可能通过隐含的胁迫发生。到
将因子f转换为近似其原始数值,
建议使用数字(级别(f))[f],效率略高
而不是作为.numeric(作为.character(f))
因此,更合适的方法可能是as.numeric(levels(f))[f]
尝试as.numeric(as.character((df$quaty.SHIPPED))