为何将数据框RFdf中factor类型的RF向量转numeric会丢失原值?
Factor转Numeric值丢失的原因
- 在R中,factor类型并非直接存储显示的文本值,而是存储对应水平的整数编码——你看到的"0.1""0.2"这类是因子的标签,底层实际是1、2、3...这类整数。
- 直接用
as.numeric()转换factor时,R会提取底层的整数编码,而非标签上的数值,所以你看到的结果和原数值完全不符,看起来像是原数值丢失了。
正确的转换方式
- 先转字符型再转数值型,还原标签里的数值:
RFdf$RF <- as.numeric(as.character(RFdf$RF)) - 也可以用
readr包的parse_number()函数,更稳妥地提取数值:library(readr) RFdf$RF <- parse_number(RFdf$RF)
内容的提问来源于stack exchange,提问作者Mistah White
相关产品推荐
相关产品推荐

