我试图将数据框(X.2
)的其中一列(frost
)从因子转换为数字。当我仅尝试使用X.2
而不是frost$X.2
时,它似乎可以正常运行
我问str(frost)
该列仍然是一个因素。
frost=read.csv2("Database_REL_Umea_aktuell.csv")
frost
as.numeric(as.character(frost$X.2))
[1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[28] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[55] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[82] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[109] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[136] NA NA
Warning message:
NAs introduced by coercion
str(frost)
'data.frame': 137 obs. of 6 variables:
$ Database.frost.damage.Umea: Factor w/ 7 levels "","Hylocomium splendens (HS)",..: 1 5 3 3 3 3 3 3 3 3 ...
$ X : Factor w/ 5 levels "","C","SR1","SR10",..: 1 5 4 4 4 4 4 4 4 4 ...
$ X.1 : Factor w/ 11 levels "","C-1","C-2",..: 1 5 9 9 9 10 10 10 11 11 ...
$ X.2 : Factor w/ 136 levels "","0,012573",..: 1 136 110 99 129 105 82 112 94 69 ...
$ X.3 : Factor w/ 5 levels "","a","b","c",..: 1 5 2 3 4 2 3 4 2 3 ...
$ X.4 : logi NA NA NA NA NA NA ...
有人不知道为什么它不起作用? 谢谢你的帮助!
答案 0 :(得分:0)
当您输入时,
as.numeric(as.character(frost$X.2))
它不会改变数据框中的任何内容,只是将其打印在屏幕上。
至于你获得NAs的原因,看起来你有几个空白的观察或观察形式" X,XXXX"当你这样做时,它们将被转换为NA。
所以尝试将它们转换为表格" X.XXX"然后转换为数字:
frost$X.2 <- sapply(sapply(frost$X.2, gsub, patt=",", replace="."), as.numeric)