提前感谢您的帮助!
我需要将 x.1 列转换为数字,以包含双浮点数。
我做了什么: 1. 我导入了以下数据:training <- read.csv("training_grover.csv", stringsAsFactors = FALSE, sep = ";")
str(training)
结果:data.frame': 2671 obs. of 22 variables:
$ X : int 0 1 2 3 4 5 6 7 8 9 ...
$ x.0 : chr "b" "a" "a" "b" ...
$ x.1 : chr "30,83" "58,67" "24,5" "27,83" ...
$ x.2 : chr "f" "4.46" "0.5" "1.54" ...
$ x.3 : chr "u" "u" "u" "u" ...
$ x.4 : chr "g" "g" "g" "g" ...
$ x.5 : chr "w" "q" "q" "w" ...
$ x.6 : chr "v" "h" "h" "v" ...
$ x.7 : chr "1.25" "3.04" "1.5" "3.75" ...
$ x.8 : chr "t" "t" "t" "t" ...
$ x.9 : chr "t" "t" "f" "t" ...
$ x.10: chr "t" "6" "f" "5" ...
$ x.11: chr "f" "f" "f" "t" ...
$ x.12: chr "g" "g" "g" "g" ...
$ x.13: chr "202.0" "43.0" "280.0" "100.0" ...
$ x.14: chr "f" "560" "824" "3" ...
$ x.20: chr "t" "t" "t" "t" ...
$ x.17: chr "116,94256980957068" "225,60625307204938" "92,08407670672422" "104,16291777029285" ...
$ x.18: chr "0,5787085579422866" "25,409645364400404" "2,3173371593153314" "8,04533772976642" ...
$ x.19: chr "202000.0" "43000.0" "280000.0" "100000.0" ...
$ x.16: chr "f" "f" "f" "f" ...
$ y : chr "good" "good" "good" "good" ..
-
我试图将 x.1 列转换为数字:
training$x.1=as.numeric(training$x.1)
结果我得到了充满 NA 的 x.1
行动:
一个。我再次导入了文件
二.我从 x.1 中删除了",":str_replace_all(training$x.1, ",", ".")
c. 再次尝试转换 x.1 列:training$x.1=as.numeric(training$x.1)
结果我仍然得到充满 NA 的 x.1
d. 再次导入文件
e. 我从 x.1 中删除了",":str_replace_all(training$x.1, ",", ".")
f. 再次尝试转换 x.1 列:training$x.1= as.numeric(as.factor(training$x.1))
. 结果:x.1 列仍然充满 NA。
我在这里做错了什么? 谢谢!
导入后可能有多种方法可以对数据进行后处理,但您可以通过正确导入数据来修复第一步。使用dec = ","
指定用于表示小数点的字符。
training <- read.csv("training_grover.csv", stringsAsFactors = FALSE, sep = ";", dec = ",")
这些设置是默认设置read.csv2
training <- read.csv2("training_grover.csv", stringsAsFactors = FALSE)
也许您可以尝试下面的代码进行类型转换
training$x.1 <- as.numeric(gsub(",","\.",training$x.1))