On 14-May-09 12:27:40, Wacek Kusnierczyk wrote:
> jim holtman wrote:
>> Depending on what you want to do, use 'sprintf':
>>
>>> x <- 1.23456789
>>> x
>> [1] 1.234568
>>   
>>> as.character(x)
>> [1] "1.23456789"
>>   
>>> sprintf("%.1f  %.3f  %.5f", x,x,x)
>> [1] "1.2  1.235  1.23457"
>>   
> ... but remember that sprintf introduces excel bugs into r (i.e.,
> rounding is not done according to the  IEC 60559 standard, see ?round):
> 
>     ns = c(0.05, 0.15)
>     round(ns, 1)
>     # 0.0 0.2
>     as.numeric(sprintf('%.1f', ns))
>     # 0.1 0.1
> vQ

True! And thanks for importing that point into the discussion.
And, by the way, it goes some way to solving an issue I raised
earlier, in that

  M
#          [,1]      [,2]
# [1,] 3.141593  9.424778
# [2,] 6.283185 12.566371

  round(10*M,3)
#        [,1]    [,2]
# [1,] 31.416  94.248
# [2,] 62.832 125.664

though, of course, still 
  round(1.0,3)
# [1] 1  ### not 1.000

It would still be good to be able to simply have

  print(X,decimals=3)

(with proper rounding, of course)

Ted.

--------------------------------------------------------------------
E-Mail: (Ted Harding) <ted.hard...@manchester.ac.uk>
Fax-to-email: +44 (0)870 094 0861
Date: 14-May-09                                       Time: 14:47:30
------------------------------ XFMail ------------------------------

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to