R 读取欧洲格式数值作为因子

R reads European format numerical values as factors

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

as.numeric(as.character(athene))

但是在这一行中输入时,会出现以下消息:

'NAs introduced by coercion'

我的屏幕上出现了很多 NA。当我指定要更改的特定因素时,也会发生同样的情况

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

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

str(athene)

'data.frame': 72920 obs. of 17 variables:

$ 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: Factor w/ 233 levels "100,00","101,00",..: 1 233 13 15 5 10 8 6 7 14 ...

$ B12: Factor w/ 1538 levels "1000,00","1001,00",..: 959 960 1013 1024 977 993 974 966 966 1011 ...

$ MTP: Factor w/ 198 levels "0,00","1,00",..: 137 179 36 133 122 122 110 113 197 110 ...

$ MB6: Factor w/ 264 levels "-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 3 ...

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

如果有人发现我在将阶乘值更改为数值时做错了什么,我们将不胜感激。

R不懂我们欧洲人用“,”作为小数点分隔符。将所有的“,”改为“。”在强制转换为 numeric:

之前使用 gsub()
> 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