我可以强制 R 使用常规数字而不是使用e+10
-like 表示法吗?我有:
1.810032e+09
# and
4
在同一个向量中并希望看到:
1810032000
# and
4
我正在为一个老式程序创建输出,我必须使用cat
. 到目前为止效果很好,但我根本不能在e+10
那里使用符号。
我可以强制 R 使用常规数字而不是使用e+10
-like 表示法吗?我有:
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()
显式宽度,例如sprintf("%.5f", ran2)
.
它可以通过禁用 R 中的科学记数法来实现。
options(scipen = 999)
我最喜欢的答案:
format(1810032000, scientific = FALSE)
# [1] "1810032000"
这可以提供您想要的东西,而无需在 R 设置中搞砸。
请注意,它返回的是字符串而不是数字对象
放入options(scipen = 999)
您的.Rprofile 文件,使其默认自动执行。(不要依赖手动操作。)
(这与其他答案不同:如何?