2017-08-04 4 views
2

私は非常に正確な数字(最大桁数)を扱っています。write.csv precision R

私は、Rのwrite.csv(x)が時々ラウンドしていることに気付きました。

誰かに気付いたことがありますか? デフォルトの桁数はどのくらいですか?マニュアルに書かれたよう

+0

この質問はプログラミング指向ですので、ここではトピックではないので、stackexachange.comに移行することにしました。 – Tim

+0

こちらをご覧ください:https://stackoverflow.com/questions/1089018/why-cant-decimal-numbers-be-represented-exactly-in-binary – Ferdi

+0

ここ:https://stackoverflow.com/questions/21895756 /なぜ浮動小数点数が不正確か – Ferdi

答えて

5

、ほぼすべてのケースで数値の数量の変換はなく、digits = 15の内部等価 と、(optionsを参照してください)オプション「scipen」で を支配されています。より細かく制御するには、formatを使用して、 の行列/データフレームを作成し、write.tableを呼び出します。

だから、簡単な解決策はoptions、すなわち

options(digits = DESIRED_VALUE) 

を変更することで、カスタマイズされたソリューションは、例えば、formatと文字型にあなたの変数を変換することです

dat <- mtcars 
dat$wt <- format(dat$wt, digits = 20) 

このように保存してください。しかし、コンピュータを使用しているときには、は常にです(Gldberg、1991、What Every Computer Scientist Should Know About Floating-Point Arithmeticを参照)。コンピュータの精度には厄介な結果があります。

format(2.620, digits = 20) 
## [1] "2.6200000000000001066" 

あなたはおそらく唯一の小数点以下のいくつかの数まで正確にはそれらを必要とするように丸めた値を使用して「悪い」ものは何もありません。さらに、測定値も測定誤差の影響を受けますので、精度は幻想的になります。

関連する問題