Answers:
这是一个灰色区域。您需要回想一下,R总是会调用一个打印方法,而这些打印方法会监听某些选项。包括“科学”-科学展示的惩罚。来自help(options)
:
'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)
。
options("scipen"=0, "digits"=7)
这些是默认值)
options("scipen"=100, "digits"=4)
的代码移到代码的顶部,将不在代码下面的代码移到代码的顶部,并带有适当的注释。这可能会使正在寻求快速解决方案的人感到困惑(而Google会显示第一个解决方案)。
我最喜欢的答案:
format(1810032000, scientific = FALSE)
# [1] "1810032000"
这样就可以提供您想要的内容,而不必在R设置中费解。
请注意,它返回的是字符串而不是数字对象
justified = "none"
,否则将空格填充到相同的长度。
format(1e6, scientific=FALSE)
return "1000000"
而return 则as.character(1e6)
返回"1e+06"
,因此这两种方法之间存在差异。
放入options(scipen = 999)
您的.Rprofile文件,使其默认情况下自动执行。(不要依靠手动操作。)
(这是与其他答案不同的说法:如何?