On 3/20/07, Duncan Murdoch <[EMAIL PROTECTED]> wrote: > On 3/20/2007 1:40 PM, Gabor Grothendieck wrote: > > On 3/20/07, Duncan Murdoch <[EMAIL PROTECTED]> wrote: > >> On 3/20/2007 12:44 PM, Gabor Grothendieck wrote: > >> > On 3/20/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > >> >> On 3/20/2007 11:19 AM, [EMAIL PROTECTED] wrote: > >> >> > Full_Name: Charles Dupont > >> >> > Version: 2.4.1 > >> >> > OS: linux 2.6.18 > >> >> > Submission from: (NULL) (160.129.129.136) > >> >> > > >> >> > > >> >> > 'format.pval' has a major limitation in its implementation. For > >> >> > example > >> >> > suppose a person had a vector like 'a' and the error being ±0.001. > >> >> > > >> >> > > a <- c(0.1, 0.3, 0.4, 0.5, 0.3, 0.0001) > >> >> > > format.pval(a, eps=0.01) > >> >> > > >> >> > If that person wants to have the 'format.pval' output with 2 digits > >> >> > always > >> >> > showing (like passing nsmall=2 to 'format'). That output would look > >> >> > like > >> >> > this. > >> >> > > >> >> > [1] "0.10" "0.30" "0.40" "0.50" "0.30" "<0.01" > >> >> > > >> >> > That output is currently impossible because format.pval can only > >> >> > produce output like this. > >> >> > > >> >> > [1] "0.1" "0.3" "0.4" "0.5" "0.3" "<0.01" > >> >> > > >> >> > > >> >> > --------------------------------------------------------------- > >> >> > a <- c(0.1, 0.3, 0.4, 0.5, 0.3, 0.0001) > >> >> > format.pval(a, eps=0.01) > >> >> > >> >> But there's a very easy workaround: > >> >> > >> >> format.pval(c(0.12, a), eps=0.01)[-1] > >> >> > >> >> gives you what you want (because the 0.12 forces two decimal place > >> >> display on all values, and then the [-1] removes it). > >> >> > >> > > >> > Clever, but the problem would be that summary.lm, etc. call format.pval > >> > so the > >> > user does not have a chance to do that. > >> > >> I don't see how this is relevant. summary.lm doesn't let you pass a new > >> eps value either. Adding an "nsmall=2" argument to format.pval wouldn't > >> help with the display in summary.lm. > >> > >> I suppose we could track down every use of format.pval in every function > >> in every package and add nsmall and eps as arguments to each of them, > >> but that's just ridiculous. People should accept the fact that R > >> doesn't produce publication quality text, it just provides you with ways > >> to produce that yourself. > >> > >> Duncan Murdoch > >> > > > > You are right in terms of my example which was not applicable but I > > think in general that format.pval is used from within other routines rather > > than > > directly by the user so the user may not have a chance to massage it > > directly. > > Right, but this means that it is more or less useless to change the > argument list for format.pvals in the way Charles suggested, because all > of the existing uses of it would ignore the new parameters. > > It would not be so difficult to change the behaviour of format.pvals so > that for example "digits=2" implied the equivalent of "nsmall=2", but I > don't think that's a universally desirable change. > > The difficulty here is that different people have different tastes for > presentation-quality text. Not everyone would agree that the version > with trailing zeros is preferable to the one without. R should be > flexible enough to allow people to customize their displays, but not > necessarily by having every print method flexible enough to satisfy > every user: sometimes users need to construct their own output formats.
It would be interesting to take a similar approach to grid - return a table object which could then be tweaked as necessary, rather than having to build everything up from scratch. A very big job though! Hadley ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel