From: Gabor Grothendieck <ggrothendieck_at_gmail.com>

Date: Wed 10 Jan 2007 - 17:03:22 GMT

R-help@stat.math.ethz.ch 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. Received on Thu Jan 11 04:13:01 2007

Date: Wed 10 Jan 2007 - 17:03:22 GMT

Looks like oneway.test has been changed for R 2.5.0.

https://svn.r-project.org/R/trunk/src/library/stats/R/oneway.test.R

into your session. Then fun.2 from your post will work without the workarounds I posted:

fun.2(values ~ group)

On 1/9/07, Adrian Dusa <dusa.adrian@gmail.com> wrote:

> On Tuesday 09 January 2007 15:14, Gabor Grothendieck wrote:

*> > oneway.test is using substitute on its arguments so its literally
**> > getting formula rather than the value of formula.
**>
**> Ah-haa... I understand now. Thanks for the tips, they both work as expected.
**> Best,
**> Adrian
**>
**> > Try these:
**> >
**> > fun.3 <- function(formula) {
**> > mc <- match.call()
**> > mc[[1]] <- as.name("oneway.test")
**> > eval.parent(mc)
**> > }
**> > fun.3(values ~ group)
**> >
**> > fun.4 <- function(formula) {
**> > do.call(oneway.test, list(formula))
**> > }
**> > fun.4(values ~ group)
**> >
**> > On 1/9/07, Adrian Dusa <dusa.adrian@gmail.com> wrote:
**> > > Hi all,
**> > >
**> > > I want to write a wrapper for an analysis of variance and I face a
**> > > curious problem. Here are two different wrappers:
**> > >
**> > > fun.1 <- function(formula) {
**> > > summary(aov(formula))
**> > > }
**> > >
**> > > fun.2 <- function(formula) {
**> > > oneway.test(formula)
**> > > }
**> > >
**> > > values <- c(15, 8, 17, 7, 26, 12, 8, 11, 16, 9, 16,
**> > > 24, 20, 19, 9, 17, 11, 8, 15, 6, 14)
**> > > group <- rep(1:3, each=7)
**> > >
**> > > # While the first wrapper works just fine:
**> > > fun.1(values ~ group)
**> > >
**> > > # the second throws an error:
**> > > fun.2(values ~ group)
**> > > Error in substitute(formula)[[2]] : object is not subsettable
**> > >
**> > > ###
**> > >
**> > > I also tried binding the two vectors in a data.frame, with no avail.
**> > > I did find a hack, creating two new vectors inside the function and
**> > > creating a fresh formula, so I presume this has something to do with
**> > > environments.
**> > >
**> > > Could anybody give me a hint on this?
**> > > Thank you,
**> > > Adrian
**> > >
**> > > --
**> > > Adrian Dusa
**> > > Romanian Social Data Archive
**> > > 1, Schitu Magureanu Bd
**> > > 050025 Bucharest sector 5
**> > > Romania
**> > > Tel./Fax: +40 21 3126618 \
**> > > +40 21 3120210 / int.101
**> > >
**> > > ______________________________________________
**> > > R-help@stat.math.ethz.ch 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.
**>
**> --
**> Adrian Dusa
**> Arhiva Romana de Date Sociale
**> Bd. Schitu Magureanu nr.1
**> 050025 Bucuresti sectorul 5
**> Romania
**> Tel./Fax: +40 21 3126618 \
**> +40 21 3120210 / int.101
**>
*

R-help@stat.math.ethz.ch 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. Received on Thu Jan 11 04:13:01 2007

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.1.8, at Wed 10 Jan 2007 - 18:30:25 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*