I'm mindful of the volunteer nature of R-core, but I'm also sympathetic to
Donald.

I use Sweave to create documents, though I tend to view Sweave as a
typesetter, not a report writer.  What do I see as the difference? Sweave
typesets _raw_ R output.  A report writer makes it easier to quickly grasp
the key points.  For example, floating-point output is a poor choice for
reports to management and I have been experimenting with something I call
"lucid" printing.  Here are two examples that show how standard floating
point can make simple question needlessly hard to answer:

Question 1:   How do the coefficients compare in size? How large is the
intercept?

R> print(df1)
                   effect
hyb_A       -1.350000e+01
hyb_B        4.500000e+00
hyb_C        2.450000e+01
hyb_C1       6.927792e-14
hyb_C2      -1.750000e+00
hyb_D        1.650000e+01
(Intercept)  1.135000e+02

R> lucid(df1)
            effect
hyb_A       -13.5
hyb_B         4.5
hyb_C        24.5
hyb_C1        0
hyb_C2       -1.75
hyb_D        16.5
(Intercept) 113.5

Question 2: Which are the smallest / largest / significant variance
components?

R> print(df2)
      effect component std.error   z.ratio constraint
1        hyb  1.09e+01  4.40e+00  2.471607    Postive
2       mlra  2.77e+02  1.66e+02  1.669316    Postive
3   mlra:loc  4.93e+02  2.61e+01 18.899825    Postive
4   hyb:mlra  1.30e-04  1.58e-06 82.242618   Boundary
5         yr  1.26e+02  1.19e+02  1.060751    Postive
6     hyb:yr  2.23e+01  4.50e+00  4.951793    Postive
7    mlra:yr  4.81e+02  1.08e+02  4.442904    Postive
8 R!variance  2.68e+02  3.25e+00 82.242618    Postive

R> lucid(df2)
      effect component std.error z.ratio constraint
1        hyb   10.9         4.4    2.472    Postive
2       mlra  277         166      1.669    Postive
3   mlra:loc  493          26.1   18.9      Postive
4   hyb:mlra    0.0001      0     82.24    Boundary
5         yr  126         119      1.061    Postive
6     hyb:yr   22.3         4.5    4.952    Postive
7    mlra:yr  481         108      4.443    Postive
8 R!variance  268           3.25  82.24     Postive

The (beta) code:

lucid <- function(x, dig=4, ...) UseMethod("lucid")

lucid.default <- function(x, dig=4, ...) { x } # do nothing for non-numeric

lucid.numeric <- function(x, dig=4, ...) {
  # Use 4 significant digits, drop trailing zero, align decimals
  if(class(x)=="numeric" | class(x)=="integer")
    format(format(signif(zapsmall(x), dig), scientific=FALSE,
                  drop0trailing=TRUE))
  else x
}

lucid.data.frame <- function(x, dig=4, quote=FALSE, ...){
  x[] <- lapply(x, lucid, dig)
  print(x, quote=quote)
  invisible(x)
}


Kevin Wright


On Sun, Aug 22, 2010 at 2:43 AM, David Hajage <dhajage.r@gmail.com> wrote:

> 2010/8/21 Donald Winston <satchwinston@yahoo.com>
>
> > I know how to program in a dozen languages. I have a B.A. in mathematics,
> > and an M.S. in operations research and statistics.
>
>
> I just don't care, I would try to answer you even if you had no formation.
>
>
> > I can figure out how to write reports in R. The point is I don't want to.
> > There should be a function that generates a report just like there is a
> > function that generates a plot without using loops or if statements.
>
>
> The question is: what do you want? What is the result of this fictive
> function? I am sure you don't need loop to do that.
>
>
> > I've read "R IN A NUTSHELL" from cover to cover. The word "report" does
> not
> > even appear in the index.
> >
>
> Just ask Joseph Adler.
>
>
> >
> > On Aug 21, 2010, at 11:39 AM, David Hajage wrote:
> >
> > > I must repeat: "just show us what is the kind of report you want to
> > > do, and you will perhaps
> > > get a solution to reproduce it"
> > > We still don't know what is the output of your report() function.
> > > This, is ridiculous.
> > >
> > > On Saturday, August 21, 2010, Frank Harrell <f.harrell@vanderbilt.edu>
> > wrote:
> > >>
> > >>
> > >> On Sat, 21 Aug 2010, Donald Paul Winston wrote:
> > >>
> > >>
> > >>
> > >> Good grief. Adding a report function is not going to make R less
> > flexible. Don't
> > >> you want to use a tool that's relevant to the rest of the world? That
> > world is
> > >> much bigger then your world. This is ridiculous.
> > >>
> > >> Looks like some people are complaining about me criticizing R and the
> > people who
> > >> defend it. Good grief again.
> > >>
> > >>
> > >> I think your philosophy is now more clear Donald.  People who don't
> like
> > learning new things place themselves at a competitive disadvantage. The R
> > community, where learning is highly valued, may be fundamentally
> > incompatible with your philosophy.  You may do well to stay with SAS.
> > >>
> > >> Frank
> > >>
> > >>
> > >>
> > >>
> > >>
> > >> ________________________________
> > >> From: David Hajage-2 [via R] <
> > ml-node+2333348-1227050197-138200@n4.nabble.com<ml-node%2B2333348-1227050197-138200@n4.nabble.com>
> <ml-node%2B2333348-1227050197-138200@n4.nabble.com<ml-node%252B2333348-1227050197-138200@n4.nabble.com>
> >
> > >
> > >>
> > >> Sent: Sat, August 21, 2010 4:54:12 AM
> > >> Subject: Re: R reports
> > >>
> > >> Just show us what is the kind of report you want to do, and you will
> > perhaps
> > >> get a solution to reproduce it. Then, if you don't like the way to do
> > that,
> > >> write your own code or don't use R, noone force you. The majority of R
> > users
> > >> are satisfied with the way to generate reports, because it is
> flexible.
> > >> There is ABSOLUTELY *NO WARRANTY with R, this means also you have no
> > >> warranty to find exactly what you want, and what you can find in SAS.
> > Just
> > >> deal with it.*
> > >>
> > >> 2010/8/21 Donald Paul Winston <[hidden email]>
> > >>
> > >>
> > >>
> > >>
> > >> Sweave and LaTex is way to much overhead to deal with. There should be
> a
> > >> built in standard report() function analogous to plot().
> > >>
> > >> Something like the following is necessary if you want real people to
> > take R
> > >> seriously:
> > >>
> > >> report(data=<aDataFrame>, vars=<vectorOfColumnNames>,
> > >> label=<vectorOfColumnNames>, by=<vectorOfColumnNames>,
> > >> sum=vectorOfColumnNames>, title=<vectorOfStrings>,
> > >> footer=<vectorOfStrings>,
> > >> pageBy=<vectorOfColumnNames>, sumBy=<vectorOfColumnNames>,
> > >> filename=<string>, fileType=<text|csv|pdf..>...etc)
> > >>
> > >> Did I say "real" people?  I've been Palinized.
> > >> --
> > >> View this message in context:
> > >>
> > http://r.789695.n4.nabble.com/R-reports-tp2330733p2333264.html?by-user=t
> > >> Sent from the R help mailing list archive at Nabble.com.
> > >>
> > >>
> > >> ______________________________________________
> > >> 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.
> > >>
> >
> >
>
>         [[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.
>



-- 
Kevin Wright

	[[alternative HTML version deleted]]

