R将欧洲格式数值作为因子

时间:2016-05-19 09:32:18

标签: r categorical-data

在R3.1.2中,我上传了一个数据集。然而,我的数值是因子。通过在线搜索,我发现此代码应该将我的值从因子更改为数字:

as.numeric(as.character(athene))

但在输入此行时,会出现以下消息:

  

'强制'引入的NAs

我的屏幕上出现了很多新手。当我指定我想要更改的具体因素时,会发生同样的情况

(as.numeric(as.character(MAG)).

当我查看我的数据帧时,它没有改变,仍然看起来像以前一样。什么也没发生:

str(athene)
  

'data.frame':72920 ob​​s。 17个变量:

     

$ MAG:int 0 0 0 0 0 0 0 0 1 0 ...

     

$ PCR:int 0 1 0 0 0 0 0 0 0 0 ...

     

$ LO:int 1 1 1 1 1 1 1 1 1 1 ...

     

$ WAT:int 0 0 0 0 0 0 0 0 0 0 ...

     

$ SVE:int 0 0 0 0 0 0 0 0 0 0 ...

     

$ ARA:int 0 0 1 0 0 0 0 1 0 0 ...

     

$ GRA:int 0 0 0 1 0 1 1 0 0 1 ...

     

$ FOR:int 0 0 0 0 0 0 0 0 0 0 ...

     

$ B13:因子w / 233级别“100,00”,“101,00”,..:1 233 13 15 5 10 8 6 7 14 ...

     

$ B12:因子w / 1538水平“1000,00”,“1001,00”,..:959 960 1013 1024 977 993 974 966 966 1011 ...

     

$ MTP:因子w / 198水平“0,00”,“1,00”,..:137 179 36 133 122 122 110 113 197 110 ...

     

$ MB6:因子w / 264级别“-1,00”,“ - 10,00”,..:238 238 240 236 240 233 234 236 236 251 ...

     

$ URB:int 1 0 0 0 1 0 0 0 0 0 ...

     

$ BI1:int 12 12 12 12 12 12 12 12 12 12 ...

     

$ MHF:int 11 9 7 7 7 8 9 10 0 8 ...

     

$ BI4:int 3 3 3 3 3 3 3 3 3 ...

     

$ ALT:int 1 1 3 4 1 4 1 1 1 1 ...

如果有人对我将因子值更改为数字值有什么错误,那么任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

R不明白我们欧洲人使用“,”作为小数分隔符。将所有“,”更改为“。”在强制使用gsub()之前使用numeric

> B13 <- factor(rep(c("100,00","101,00","102,00"),1:3))
> B13
[1] 100,00 101,00 101,00 102,00 102,00 102,00
Levels: 100,00 101,00 102,00
> as.numeric(gsub(",",".",as.character(B13)))
[1] 100 101 101 102 102 102