尝试将"chr"列转换为数字会导致 R 中充满 NA 的列



提前感谢您的帮助!

我需要将 x.1 列转换为数字,以包含双浮点数。

我做了什么: 1. 我导入了以下数据:training <- read.csv("training_grover.csv", stringsAsFactors = FALSE, sep = ";")

  1. 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" ..

  1. 我试图将 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))

最新更新