oneway.test expects a literal formula, not a variable containing a formula. The help page says
formula: a formula of the form 'lhs ~ rhs' where 'lhs' gives the sample values and 'rhs' the corresponding groups. Furthermore, if you had foo.2 <- function() oneway.test(value ~ group) it would still not work, as data: an optional matrix or data frame (or similar: see 'model.frame') containing the variables in the formula 'formula'. By default the variables are taken from 'environment(formula)'. I could show you several complicated workarounds, but why do you want to do this? On Tue, 9 Jan 2007, Adrian Dusa 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 > > -- Brian D. Ripley, [EMAIL PROTECTED] Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595 ______________________________________________ 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.