如何舍入向量中的数字以仅在 R 中显示必要的小数?

How to round numbers in a vector to only show necessary decimals in R?

我有一个向量,其中包含整数和带小数位的数字。我只想在必要时显示小数位。例如,我有以下向量:

vec <- c(0.01, 0.1, 1, 10)

R 当前显示值如下:

> vec
[1]  0.01  0.10  1.00 10.00

我正在寻找的输出是这样的:

0.01  0.1  1  10

到目前为止,我只能将向量的所有值四舍五入到相同的小数位。谢谢!

我们可能会使用额外的 S3 class:

print.myNumeric <- function(x) cat(x, sep = "  ")

添加class前后打印对比:

vec
#> [1]  0.01  0.10  1.00 10.00

class(vec) <- c("myNumeric", class(vec))

vec
#> 0.01  0.1  1  10

基本数学保留 class 和打印:

4 * vec + 1:4
#> 1.04  2.4  7  44