[R] nice report generator?
Duncan Murdoch
murdoch.duncan at gmail.com
Mon Feb 13 20:27:44 CET 2012
On 06/02/2012 4:12 PM, Hadley Wickham wrote:
> > 2. It's more flexible to construct the language object as a language object,
> > rather than pasting something together and parsing it. For one thing, that
> > allows non-syntactic variable names; I think it's also easier to read. So
> > your code
> >
> > txt<- paste("tabular(value*v*", LEFT , "~" ,RIGHT ,", data = m_xx,
> > suppressLabels = 2,...)", sep = "")
> > eval(parse(text = txt ))
> >
> > could be rewritten as
> >
> > formula<- substitute( value*v*LEFT ~ RIGHT, list(LEFT=LEFT, RIGHT=RIGHT))
> > tabular(formula, data = m_xx, suppressLabels = 2, ...)
>
> To be strictly correct, shouldn't that be:
>
> formula<- eval(substitute( value*v*LEFT ~ RIGHT, list(LEFT=LEFT, RIGHT=RIGHT)))
>
> ?
>
> > It might make sense to put something like this into the tables package, but
> > I don't want to have a dependency on reshape.
>
> Would you consider making tabular generic?
I have now made tabular() into a generic function, but because of the
problems at R-forge, can't commit the changes immediately. The old
tabular() function is now the tabular.formula() method; the default
method tries to coerce the object to a formula to call that. I think
both my suggestion and yours would likely have problems in the new
system (as they did in the old one) because the environment associated
with the formula would be wrong. It's a little tricky, but now
tabular() works a lot more like model.frame(), which I think has to be
considered to be the standard way to do this.
Duncan Murdoch
More information about the R-help
mailing list