将number更改为r中的数字的小数点后2位



我有一个很简单的问题,我似乎无法解决。

如何将数字2更改为2.00,作为R数据表中的数字?每个round(), format(), sprintf(), digit等都将数字2作为一个字符更改为2.00。同样,如果我想要一个小数点后2改为2.0。

如果您能帮忙,我将不胜感激。

这是一个编写简单类的方法,可以执行您想要的任务:

print.my_numbers <- function(x){
y <- sprintf(sprintf("%%.%df", attr(x, 'after')), x)
print(y, quote = FALSE)
}
my_numbers <- function(x, after=0){
structure(x, after = after, class = 'my_numbers')
}
d <- my_numbers(1:4, 2)
d
[1] 1.00 2.00 3.00 4.00
d^3
[1] 1.00  8.00  27.00 64.00

注意,为了推广类my_numbers的使用,您应该考虑为该类定义format方法

最新更新