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 <[EMAIL PROTECTED]> 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.