在R3.1.2中,我上传了一个数据集。然而,我的数值是因子。通过在线搜索,我发现此代码应该将我的值从因子更改为数字:
as.numeric(as.character(athene))
但在输入此行时,会出现以下消息:
'强制'引入的NAs
我的屏幕上出现了很多新手。当我指定我想要更改的具体因素时,会发生同样的情况
(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 ...
$ 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 ...
如果有人对我将因子值更改为数字值有什么错误,那么任何帮助都会受到赞赏。
答案 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