强制R不使用指数表示法(例如e + 10)?

我可以强迫R使用常规数字,而不是使用“e + 10”符号。 我有

1.810032e+09 # and 4 

在同一个向量内,并希望看到:

 1810032000 # and 4 

我正在创build一个老式的程序输出,我不得不写一个文本文件使用猫。 到目前为止,这工作得很好,但我不能在那里使用e + 10符号。

这是一个灰色地带。 你需要回想一下,R总是会调用一个打印方法,这些打印方法会听取一些选项。 包括“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) 

options(scipen=x)其中x是要显示的小数位数