2017-10-20 2 views
2

で科学的表記を保存:数に変換、文字ベースの科学番号と私は文字で、この値を持つR

val <- "1e-14105" 

私が何をしたいのかを数値に変換し、科学的表記法を維持することです。したがって、結果は単に数字として1e-14105です。

私はこれを試みたが、失敗しました:

> as.numeric(val) 
[1] 0 
> format(as.numeric(val), scientific=TRUE) 
[1] "0e+00" 

それを行うための正しい方法は何ですか?

答えて

3

問題は、浮動小数点の問題と、Rが動作している精度の高さです。 で、1e-14105を数値に変換すると、それはゼロに近似しています。 The R Inferno: Circle 1, Falling into the Floating Point Trapを参照してください。

> as.numeric("1e-14105") 
[1] 0 
> class(as.numeric("1e-14105")) 
[1] "numeric" 
> 1e-14105 
[1] 0 
+1

したがって、 '1e-14105'を数学的な形式でそのまま使用する方法はありませんか? – scamander

+2

@qqq - ここで言及されている非常に小さい/非常に大きい数を処理するためのパッケージのいくつかを検討することができます - https://stackoverflow.com/questions/5802592/dealing-with-very-small-numbers-in-r – thelatemail

関連する問題