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

13 浏览
0 Comments

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

我能强制R使用常规数字而不是类似于e+10的表示法吗?我有:

1.810032e+09
# and 
4

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

1810032000
# and
4

我正在为一款老式程序创建输出,必须使用cat编写文本文件。到目前为止,这很好用,但我无法在那里使用e+10表示法。

admin 更改状态以发布 2023年5月20日
0
0 Comments

通过在R中禁用科学计数法可以实现。

options(scipen = 999)

0
0 Comments

这有一点灰色地带。要记住,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()来指定宽度,例如sprintf("%.5f", ran2)

0