web-dev-qa-db-ja.com

R出力を最大2桁の小数を含む科学表記法に強制する

特定のRスクリプトに対して一貫した出力が必要です。この場合、数値出力はすべて小数点以下2桁の科学表記法にしたいです。

例:

0.05 --> 5.00e-02
0.05671 --> 5.67e-02
0.000000027 --> 2.70e-08

次のオプションを使用してみました。

options(scipen = 1)
options(digits = 2)

これは私に結果を与えました:

0.05 --> 0.05
0.05671 --> 0.057
0.000000027 --> 2.7e-08

私が試したときに同じ結果が得られました:

options(scipen = 0)
options(digits = 2)

アドバイスありがとうございます。

28
user1830307

グローバル設定を変更するよりも、formatCを使用するのがおそらく最善だと思います。

あなたの場合、次のようになります。

numb <- c(0.05, 0.05671, 0.000000027)
formatC(numb, format = "e", digits = 2)

どちらが得られますか:

[1] "5.00e-02" "5.67e-02" "2.70e-08"
49
Dave Gruenewald

別のオプションは、scientificライブラリのscalesを使用することです。

library(scales)
numb <- c(0.05, 0.05671, 0.000000027)

# digits = 3 is the default but I am setting it here to be explicit,
# and draw attention to the fact this is different than the formatC
# solution.
scientific(numb, digits = 3)

## [1] "5.00e-02" "5.67e-02" "2.70e-08"

digitsは、formatCの場合のように2ではなく3に設定されていることに注意してください。

2
steveb