我使用read.csv
导入带有数字值的CSV文件,其中CSV分隔符为&#34 ;;",小数分隔符为","另外,thousend seperator是"。"
Hist <- read.csv(file = "XXXX", header = T, sep = ";", dec =",", stringsAsFactors=FALSE)
我在data.table中转换了它...
Hist <- data.table(Hist)
它看起来像这样:
Date Value
# 2017-11-12 12.456,89
# 2017-11-10 13.234,99
# 2017-11-08 14.123,45
现在我要更改列的类/格式&#34; Value&#34;因为我想用它计算数字。但我尝试的一切都没有奏效。例如:
Hist[, Value := as.numeric(Value)]
正在创建错误:
警告讯息: 在eval(jsub,SDenv,parent.frame())中:强制引入的NA
有人可以帮忙吗?
答案 0 :(得分:0)
它们被读作字符串。要将它们转换为数字,请删除千位分隔符(。),然后将小数点分隔符(,)转换为某个点。
Hist$Value = as.numeric(gsub(",",".",(gsub("\\.","",Hist$Value))))
与以下内容相同:
noPoints = gsub("\\.", "", Hist$Value)
commaToPoint = gsub(",", ".", noPoints)
Hist$Value = as.numeric(commaToPoint)