1. ホーム
  2. r

[解決済み】Rに指数表記(e+10など)を使わせないように強制する?)

2022-04-04 01:54:31

質問

を使用する代わりに、通常の数字を使用するようにRを強制することはできますか? e+10 -のような記法はありますか?私は持っています。

1.810032e+09
# and 
4

を同じベクトル内で見てみたい。

1810032000
# and
4

昔ながらのプログラムの出力を作っているのですが、テキストファイルで cat . これまではうまくいっていたのですが、どうしても e+10 という表記があります。

どのように解決するのですか?

これはちょっとグレーゾーンです。 Rは常にprintメソッドを起動し、これらのprintメソッドはいくつかのオプションを聞いていることを思い出す必要があります。その中には 'scipen' -- 科学的表示のためのペナルティも含まれています。 以下より help(options) :

'scipen': 整数。 印刷するかどうかを決める際に適用されるペナルティ。 数値の固定表記または指数表記。 正の値 の値は固定値に、負の値は科学技術に偏ります。 表記法: 固定表記法が優先されます。 scipen' digitより広い。

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) .