我有一个数据框,我需要将2个变量从因子转换为数值变量。我有一个
df$QTY.SHIPPED=as.numeric(df$QTY.SHIPPED)
df$PRE.TAX.TOTAL.=as.numeric(df$PRE.TAX.TOTAL.)
发货量很好。因为它已经是整数格式。 Howerver,PRE.TAX.TOTAL。转换不好。
PRE.TAX.TOTAL.(Factor) PRE.TAX.TOTAL.(Numerical)
57.8 3856
210 2159
有人知道为什么会这样转换吗?
谢谢
答案 0 :(得分:2)
首先转换为字符,然后转换为数字。否则它只会转换为编码因子
的基础整数> v<-factor(c("57.8","82.9"))
> as.numeric(v)
[1] 1 2
> as.numeric(as.character(v))
[1] 57.8 82.9
答案 1 :(得分:1)
您实际上可以阅读文档。在控制台中输入?factor
会产生
警告
因子的解释取决于代码和 &#34;水平&#34;属性。小心只比较相同的因素 一组等级(按相同顺序)。特别是,as.numeric应用 一个因素是没有意义的,可能是通过隐性强制发生的。至 将因子f转换为大约其原始数值, 建议使用as.numeric(levels(f))[f],效率稍高 比as.numeric(as.character(f))。
因此,更合适的方式可能是as.numeric(levels(f))[f]