2

我想将一个数字转换为指定数量的有效数字,例如一些"1.0"FUN(1.01). (我需要一个字符,因为该值将用于xtable.

我怀疑这是微不足道的,但我遇到了麻烦。

这是我尝试过的:

> signif(1.01, 2)
[1] 1
> round(1.01, 2)
[1] 1.01
> format(1.01, digits = 2)
[1] "1"
> as.character(trunc(1.20, 3))
[1] "1"
> as.character(round(1.01, digits = 2))
[1] "1"

有没有可以做到这一点的功能?

4

1 回答 1

8

尝试?sprintf

> sprintf("%0.1f", 1.01)
[1] "1.0"

还有formatand formatC,您可能会发现它对用户更友好:

> format(1.01,digits=1,nsmall=1)
[1] "1.0"
> formatC(1.01,digits=1,format="f")
[1] "1.0"
于 2012-07-19T19:21:43.883 回答