[R] Formatting numbers with a limited amount of digits consistently

Duncan Murdoch murdoch at stats.uwo.ca
Mon May 30 19:20:50 CEST 2005


Henrik Andersson wrote:
> I have tried to get signif, round and format to display numbers like 
> these consistently in a table, using e.g. signif(x,digits=3)
> 
> 17.01
> 18.15
> 
> I want
> 
> 17.0
> 18.2
> 
> Not
> 
> 17
> 18.2
> 
> 
> Why is the last digit stripped off in the case when it is zero!

signif() changes the value; you don't want that, you want to affect how 
a number is displayed.  Use format() or formatC() instead, for example

 > x <- c(17.01, 18.15)
 > format(x, digits=3)
[1] "17.0" "18.1"
 > noquote(format(x, digits=3))
[1] 17.0 18.1

> Is this a "feature" of R or did I miss something?

I'd say both.

Duncan Murdoch




More information about the R-help mailing list