2017-11-12 8 views
0

read.csvを使用して、CSVセパレータが ";"で、小数点のセパレータが "セパレータは "。"千のセパレータを使用してdata.frame(as.numeric)の文字を数値に変更する

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 

私はそれを計算したいので、 "値"を数値にします。しかし、私が試したことはすべてうまくいかなかった。たとえば:

Hist[, Value := as.numeric(Value)] 

はエラーを作成されています

Warning message: In eval(jsub, SDenv, parent.frame()) : NAs introduced by coercion

誰も助けることができますか?

答えて

0

文字列として読み込まれます。数値に変換するには、千単位の区切り記号(。)を削除し、小数点記号(、)をポイントに変換します。

と同じである
Hist$Value = as.numeric(gsub(",",".",(gsub("\\.","",Hist$Value)))) 

: "\\"

noPoints = gsub("\\.", "", Hist$Value) 
commaToPoint = gsub(",", ".", noPoints) 
Hist$Value = as.numeric(commaToPoint) 
+0

ソリューションでしたgsubで。私は前に '' gsub( "、"、 "...")しようとしました。 – MelBourbon

関連する問題