R读取欧洲格式的数值作为因子
在R3.1.2中,我上传了一个数据集。然而,我的数值被解读为因子。通过在线搜索,我发现此代码应将我的值从因子更改为数值:R读取欧洲格式的数值作为因子,r,categorical-data,R,Categorical Data,在R3.1.2中,我上传了一个数据集。然而,我的数值被解读为因子。通过在线搜索,我发现此代码应将我的值从因子更改为数值: as.numeric(as.character(athene)) 但在这一行中键入时,会出现以下消息: “强制引入的NAs” 我的屏幕上出现了很多NAs。当我指定要更改的特定因子时,也会发生同样的情况 (as.numeric(as.character(MAG)). 当我查看我的数据帧时,它并没有改变,看起来仍然像以前一样。什么都没有发生: str(athene) “da
as.numeric(as.character(athene))
但在这一行中键入时,会出现以下消息:
“强制引入的NAs”
我的屏幕上出现了很多NAs。当我指定要更改的特定因子时,也会发生同样的情况
(as.numeric(as.character(MAG)).
当我查看我的数据帧时,它并没有改变,看起来仍然像以前一样。什么都没有发生:
str(athene)
“data.frame”:72920 obs。在17个变量中:
$MAG:int 0 0 0 0 0 0 1 0
$PCR:int 0 1 0 0 0 0 0 0 0 0 0
$LO:int 1 1
$WAT:int 0 0 0 0 0 0
$SVE:int 0 0 0 0 0 0 0
$ARA:int 0 1 0 0 0 0 0 1 0 0 0
$GRA:int 0 0 1 0 1 0 1
$FOR:int 0 0 0 0 0 0 0
B13元:系数w/233水平“100,00”、“101,00”和…1233 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 110 113 197 110
$MB6:系数w/264级“-1,00”、“-10,00”、…:238 238 240 236 240 233 234 236 251
$URB:int 1 0 0 1 0 0 0 0 0 0 0
$BI1:int 12 12
$MHF:int 11 9 7 7 8 9 10 0 8
$BI4:int 3 3
$ALT:int 1 3 4 1 4 1 1 1 1 1 1 1 1 1
如果有人对我将阶乘值改为数字值的错误有任何疑问,我们将不胜感激。R不理解我们欧洲人使用“,”作为十进制分隔符。在强制转换为数值之前,使用
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
>B13 B13
[1] 100,00 101,00 101,00 102,00 102,00 102,00
级别:100,00 101,00 102,00
>as.numeric(gsub(“,”,“,”,as.character(B13)))
[1] 100 101 101 102 102 102
R不理解我们欧洲人使用“,”作为十进制分隔符。在强制转换为数值之前,使用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
>B13 B13
[1] 100,00 101,00 101,00 102,00 102,00 102,00
级别:100,00 101,00 102,00
>as.numeric(gsub(“,”,“,”,as.character(B13)))
[1] 100 101 101 102 102 102
当我尝试以下操作时,会发生另一个错误:>as.numeric(levels(athene))[as.integer(athene)]错误:(list)对象无法强制键入“integer”>当我尝试以下操作时,会发生另一个错误:>as.numeric(levels(athene))[as.integer(athene)]错误:(list)如果数据的格式正确,则无法强制对象键入“integer'>或可能使用read.csv2
。如果数据的格式正确,则可能使用read.csv2
。