
上QQ阅读APP看书,第一时间看更新
6-5 数值型因子在转换时常见的错误
假设有一个数值型的因子记录着摄氏温度天气,如下所示。

如果现在用str()函数了解此temperature因子,可以得到下列结果。

可以得到levels有4个值,分别是“28”“30”“32”“34”,分别对应1, 2, 3, 4。所以对于“28”“32”“30”“34”“32”“34”可以传回“1, 3, 2, 4, 3, 4”。
现在如果将temperature因子转成字符串向量,将可以得到下列结果。

这是预期的结果,但是如果将此temperature因子转成数值向量,将可以得到下列结果。

很明显这不是我们想要的结果。碰到这类问题时,可使用下列方式解决。

也就是将as.character(temperature)的返回值,当作as.numeric()函数的参数。