Ivan,

Now I'm no longer sure of just what you want. Are you concerned about
the *internal* handling of numbers by R or just about the *printing*
of numbers? As Marc has pointed out, internally R will use the full
precision that your input allows.

Perhaps you're using the F-value from the output of a
procedure like aov() as input to further analysis. If so,
don't use the printed value; pull the value out of the
object with something like

 fm <- aov(y ~ x)
 Fval <- summary(fm)[[1]][1,4]

But maybe this is not at all what you're after.

 -Peter Ehlers

Ivan Calandra wrote:
First things first: thanks for your help!

I see where the confusion is. With formatC and sprintf, I have to store the numbers I want to change into x.

I would like a way without applying a function on specific numbers because I can shorten the numbers that way, but it won't give me more decimals for a test for example. What I mean here is that if I have a F-value = 1.225, formatC won't give me the next 3 decimals, it will just add zeros. I need that because for some of my variables, the sample differ only at the 6th decimal (0.000005 vs 0.000006), and for other ones the order of magnitude is much higher (120.120225 vs 210.665331). So options(digits=6) cannot do the job as I would like. To make myself even clearer, notice that in my example, all numbers have 6 decimals, but a different number of digits.

I hope I'm not bothering you with this question, but I believe that the functions you advised me will not do what I need. I really need something that will set up the number of decimals by default, before the numbers are created by any function. Does such an option even exist in R? Or is it that it doesn't make sense to have different numbers of digits? Would it be better to compare 0.000005 and 210.665? Therefore options(digits=6) would be enough.

Regards,
Ivan

Le 1/28/2010 16:43, Peter Ehlers a écrit :
Ivan Calandra wrote:
It looks to me that it does more or less the same as format().

Maybe I didn't explain myself correctly then. I would like to set the number of decimal by default, for the whole R session, like I do with options(digits=6). Except that digits sets up the number of digits (including what is before the "."). I'm looking for some option that will let me set the number of digits AFTER the "."

Example: I have 102.33556677 and 2.999555666
If I set the number of decimal to 6, I should get: 102.335567 and 2.999556. And that for all numbers that will be in/output from R (read.table, write.table, statistic tests, etc)

Or is it that I didn't understand everything about formatC() and sprintf()?
You didn't:

formatC(x, digits=6, format="f")
[1] "102.335567" "2.999556"

sprintf("%12.6f", x)
[1] "  102.335567" "    2.999556"

 -Peter Ehlers

>

Thanks again
Ivan

Le 1/28/2010 15:12, Peter Ehlers a écrit :
?formatC
?sprintf

Ivan Calandra wrote:
Hi everybody,

I'm trying to set the number of decimals (i.e. the number of digits after the "."). I looked into options but I can only set the total number of digits, with options(digits=6). But since I have different variables with different order of magnitude, I would like that they're all displayed with the same number of decimals. I searched for it and found the format() function, with nsmall=6, but it is for a given vector. I would like to set it for the whole session, as with options.

Can anyone help me?
Thanks in advance
Ivan

______________________________________________
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.








--
Peter Ehlers
University of Calgary

______________________________________________
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