如何使用一个命令指定整个 R 会话期间显示的位数?也就是说,我怎样才能获得0
始终显示为的值0.0
?我已经尝试了命令options(digits=1)
,但0
仍然显示为0
而不是0.0
。我真的很想避免将每个命令包装在类似print(ifelse(x==0,"0.0",x))
.
如果这个问题的解决方案5
显示为5.0
.
如何使用一个命令指定整个 R 会话期间显示的位数?也就是说,我怎样才能获得0
始终显示为的值0.0
?我已经尝试了命令options(digits=1)
,但0
仍然显示为0
而不是0.0
。我真的很想避免将每个命令包装在类似print(ifelse(x==0,"0.0",x))
.
如果这个问题的解决方案5
显示为5.0
.
我不确定是否有一个options
for 尾随 0。一种可能性是拥有自己的 print.numeric 和 print.integer 函数。
print.integer <- print.numeric <- function(..., digs=1) {
print(format(as.numeric(...), nsmall=digs), quote=F)
}
它仍然需要print
,但更整洁
> print(-1:5)
[1] -1.0 0.0 1.0 2.0 3.0 4.0 5.0
nsmall
直接使用格式中的参数。
mat <- matrix(as.numeric(rep(0:3, 5)), ncol=4)
print(format(mat, nsmall=2), quote=F)
你可以试试我的包formattable。
> # devtools::install_github("renkun-ken/formattable")
> library(formattable)
> n <- formattable(0, format = "f", digits = 1)
> n
[1] 0.0
n
是formattable, numeric
在算术计算中保留其格式的向量。
> n+5
[1] 5.0