强制R不使用指数表示法(例如e+10)?
强制R不使用指数表示法(例如e+10)?
我能强制R使用常规数字而不是类似于e+10
的表示法吗?我有:
1.810032e+09 # and 4
在同一个向量中,希望看到:
1810032000 # and 4
我正在为一款老式程序创建输出,必须使用cat
编写文本文件。到目前为止,这很好用,但我无法在那里使用e+10
表示法。
admin 更改状态以发布 2023年5月20日
这有一点灰色地带。要记住,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)
。