回答:
これは少し灰色の領域です。Rは常に印刷メソッドを呼び出し、これらの印刷メソッドはいくつかのオプションをリッスンすることを思い出してください。「科学者」を含む-科学的表示に対するペナルティ。からhelp(options)
:
'scipen':整数。数値を固定表記または指数表記で出力することを決定するときに適用されるペナルティ。正の値は固定表記に偏り、科学表記に負の値を付けます。固定表記は、「scipen」桁を超えない限り優先されます。
例:
R> ran2 <- c(1.810032e+09, 4)
R> options("scipen"=-100, "digits"=4)
R> ran2
[1] 1.81e+09 4.00e+00
R> options("scipen"=100, "digits"=4)
R> ran2
[1] 1810032000 4
とは言っても、私はそれでもなおファッジワースだと思っています。最も直接的な方法は、sprintf()
幅を明示的に使用することsprintf("%.5f", ran2)
です。
options("scipen"=0, "digits"=7)
これらはデフォルト値です)
options("scipen"=100, "digits"=4)
を達成するものをコードの上部に移動し、それを下回らないものを適切なメモとともに移動する必要があります。簡単な解決策を探している人を混乱させる可能性があります(Googleは最初の解決策を結果として示しています)。
Rの科学表記法を無効にすることで実現できます。
options(scipen = 999)
私の好きな答え:
format(1810032000, scientific = FALSE)
# [1] "1810032000"
これにより、R設定を変更することなく、必要なものが得られます。
数値オブジェクトではなく文字列を返すことに注意してください
justified = "none"
そうしないと、同じ長さにスペースが埋め込まれます。
format(1e6, scientific=FALSE)
戻り"1000000"
ながらas.character(1e6)
戻る"1e+06"
ので、2つの方法の違いがあります。
入れてoptions(scipen = 999)
、あなたに.Rprofileファイルには、デフォルトで自動実行を取得しますので。(手動での実行に依存しないでください。)
(これは他の答えとは異なる何かを言っています:どのように?