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.