2017-03-27 1 views
1

に私は< -data.frame(価格= "1.165.338,00")私はその価格に変換することができますどのようデータConvertionは、文字列から数

price 
1.165.338,00 

price: Factor w/ 1 level "1.165.338,00": 1 

をテストし、次のデータ

を持っています1165338.00(小数点以下2桁の数値形式)?

私はこの式で試してみました:何もありません、私が使用する2桁の数字で、最終的なフォーマットについては

as.numeric(gsub(",","",testing$price))*1000 

library(formattable) 
formattable(testing$price, digits = 2, format = "f") 

答えて

2

問題がドットから来ています千の区切り記号として使用され、コンマは小数点区切り記号として使用されます。あなたが望むことをするための1つの解決策は、1 /ドットを削除し、カンマをドットに変更することです。完了したら、as.numeric()を使用してテキストを数値に変換できます。これが機能するためには、あなたが列名($価格)を指定する必要があります。

as.numeric(sub(",",".",gsub(".","",as.character(testing$price),fixed=T))) 

fixed =T力だけで置き換えるには、R「」 to ''(それ以外の場合、 '。'は任意の1文字に一致するワイルドカードです)。 2桁の番号にデータをフォーマットするために

、あなたはこれが戻って文字に数字を変換していること

format(x,nsmall=2) 

注意を使用することができます。

+0

パーフェクト!ありがとうございました – Diego