Thank you. I mainly didn't know about the vector/matrix printing rules. Kevin
-----Original Message----- From: William Dunlap [mailto:wdun...@tibco.com] Sent: Tuesday, November 15, 2011 10:43 AM To: Kevin Burton; r-help@r-project.org Subject: RE: [R] Controlling the precision of the digits printed When you print a vector R uses a single format for the whole vector and tries to come up with one format that displays all the values accurately enough. For a matrix (or data.frame) it uses a different format for each column, so perhaps you would like the output of: > matrix(a, nrow=1, dimnames=list("", names(a))) A B C D E F 1e-10 1 2 3 0.5 0.25 Now you said you wanted a minimum of 4 digits after the decimal point for "large fractions" like 0.25 but only 2 when using scientific notation for "small fractions" like 1.0e-10 and you didn't say what you wanted for big numbers like pi*10^10. That rule seems complicated enough that you may want to write your own print function based on sprintf(). Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com > -----Original Message----- > From: r-help-boun...@r-project.org > [mailto:r-help-boun...@r-project.org] On Behalf Of Kevin Burton > Sent: Tuesday, November 15, 2011 8:19 AM > To: r-help@r-project.org > Subject: [R] Controlling the precision of the digits printed > > Has anyone come across the right combinations to print a limited > number of digits? My trial and error approach is taking too much time. > Here is what I have tried: > > > > > op <- options() > > > a <- c(1e-10,1,2,3,.5,.25) > > > names(a) <- c("A", "B", "C", "D", "E", "F") > > > # default > > > a > > A B C D E F > > 1.0e-10 1.0e+00 2.0e+00 3.0e+00 5.0e-01 2.5e-01 > > > options(digits = 4, scipen=5) > > > # Doesn't print exponents but there are too many trailing digits > > > a > > A B C D E > F > > 0.0000000001 1.0000000000 2.0000000000 3.0000000000 0.5000000000 > 0.2500000000 > > > > > options(digits = 3, scipen=4) > > > # Now we are back to exponents > > > a > > A B C D E F > > 1.0e-10 1.0e+00 2.0e+00 3.0e+00 5.0e-01 2.5e-01 > > > > I would like the integers to print as integers (1,2,3). The larger > fractions to print something like .5000 or .2500. And the very small > number to use exponents (1.0e-10) > > > > Is this possible? > > > > Thank you. > > > > Kevin > > > [[alternative HTML version deleted]] > > ______________________________________________ > 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. ______________________________________________ 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.