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

问题描述 投票:1回答:1

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

as.numeric(as.character(athene))

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

'胁迫引入的新闻'

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

(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

$ 1:$ 1 1 1 1 1 1 1 1 1 ...

$ WHAT:int 0 0 0 0 0 0 0 0 0 0 ...

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

$ I see:输入0 0 1 0 0 0 0 1 0 0 ...

$ GAME: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 ...

0美元:0美元

$ 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 categorical-data
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.