Mat*_*ert 206 r scientific-notation options number-formatting defaults
我可以强制R使用常规数字而不是使用e+10类似符号吗?我有:
1.810032e+09
# and
4
Run Code Online (Sandbox Code Playgroud)
在同一个向量内,并希望看到:
1810032000
# and
4
Run Code Online (Sandbox Code Playgroud)
我正在为一个老式程序创建输出,我必须使用编写一个文本文件cat.到目前为止工作正常,但我根本无法使用e+10那里的符号.
Dir*_*tel 204
这有点灰色.您需要记住R将始终调用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
Run Code Online (Sandbox Code Playgroud)
也就是说,我仍觉得它很吵.最可怕的方法是使用sprintf()显式宽度.
Gin*_*ack 140
它可以通过在R中禁用科学记数法来实现.
options(scipen = 999)
Run Code Online (Sandbox Code Playgroud)
Dan*_*nny 61
我最喜欢的答案:
format(1810032000, scientific = FALSE)
# [1] "1810032000"
Run Code Online (Sandbox Code Playgroud)
这给了你想要的东西,而不必在R设置中捣乱.
请注意,它返回一个字符串而不是一个数字对象
smc*_*mci 15
放入options(scipen = 999) 您的.Rprofile 文件,以便默认情况下自动执行。(不要依赖手动操作。)
(这与其他答案不同:如何?