質問

I would like to convert a number to a specified number of significant figures, e.g. some function that returns "1.0" (as a character) from FUN(1.01). (I need a character because the value will be used in an xtable.

I suspect that this is trivial, but I am having trouble.

Here is what I have tried:

> 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"

Is there a function that will do this?

役に立ちましたか?

解決

Try ?sprintf:

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

There's also format and formatC, which you may find more user-friendly:

> format(1.01,digits=1,nsmall=1)
[1] "1.0"
> formatC(1.01,digits=1,format="f")
[1] "1.0"
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top