在R3.1.2中,我上传了一个数据集。然而,我的数值是因子。通过在线搜索,我发现此代码应该将我的值从因子更改为数字:
as.numeric(as.character(athene))
但在此行中键入时,会出现以下消息:
'胁迫引入的新闻'
并且我的屏幕上出现了很多NA。当我指定我想要更改的特定因素时,也会发生同样的情况
(as.numeric(as.character(MAG)).
当我查看我的数据帧时,它没有改变,仍然看起来像以前一样。什么都没发生:
str(athene)
'data.frame':72920 obs。 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不明白我们欧洲人使用“,”作为小数分隔符。将所有“,”更改为“。”在胁迫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