将因子转换为数字但获得NA

时间:2013-07-02 20:26:24

标签: r

我正在将因子转换为数字,并尝试过之前发布的两种解决方案:

   as.numeric(as.character(factor))  
   as.numeric(levels(factor))

在这两种情况下:我获得了很多NA和一条警告信息,强制引入了NA。当我输入等级(因子)时,我确实获得了很多百分比(即这些是利率)。

有什么方法可以将这些等级为系数的利率转换为数字?

谢谢,

些利

1 个答案:

答案 0 :(得分:3)

带有百分比符号的“数字”在R中不被视为数字或整数,因此在执行强制操作之前,您需要先使用例如gsub删除每个数字中的此符号。

perc <- factor(c("10%", "21.6%", "15%"))

as.numeric(as.character(perc))
[1] NA NA NA
Warning message:
NAs introduced by coercion 


as.numeric(gsub("\\%", "", perc))
[1] 10.0 21.6 15.0