e+10
のような表記法の代わりにRに通常の数字を使わせることはできますか?私は持っています:
1.810032e+09
# and
4
同じベクトル内にあり、見たい:
1810032000
# and
4
私は昔ながらのプログラムのための出力を作成しています、そして私はcat
を使用してテキストファイルを書かなければなりません。これはこれまでのところうまく機能しますが、ここではe+10
表記を使用することはできません。
これは少しグレーの領域です。あなたはRが常にprintメソッドを呼び出すことを思い出す必要があります、そしてこれらのprintメソッドはいくつかのオプションをリッスンします。科学的表示に対するペナルティ - 「scipen」を含む。 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()
を使用することです。
それはRの科学的記法を無効にすることによって達成することができます。
options(scipen = 999)
私のお気に入りの答え:
format(1810032000, scientific = FALSE)
# [1] "1810032000"
これはRの設定を気にせずに欲しいものを与えます。
数値オブジェクトではなく文字列を返すことに注意してください。
。Rprofileファイル にoptions(scipen = 999)
を入れると、デフォルトで自動実行されます。 (手動で行うことに頼らないでください。)
(これは他の答えとは違うことを言っています:どうですか?