[R] model.tables call fails with "Error in inherits(object, "formula")"

Hannes ghan at gmx.at
Fri Jul 23 13:53:49 CEST 2010


I noticed that model.tables fails when applied to an aov() fit if called 
inside a function. The problem seems to occur when as.formula is used 
inside a function on a string containing
"<formula> + Error( x / y )"

The reason I tried to use as.formula is to generate dynamic calls to aov().
Here is a minimal example illustrating the problem:

## Example

test <- function(dat) {
     frmlb <- "yield ~ block";                    # WORKS
     aovfit <- aov(as.formula(frmlb), dat);
     print(model.tables(aovfit, "means"));

     frmlc <- "yield ~ block + Error(N/block)";   # DOES NOT WORK
     aovfit <- aov(as.formula(frmlc), dat);
     print(model.tables(aovfit, "means"));

utils::data(npk, package="MASS");
frmla <- "yield ~ block + Error(N/block)";       # WORKS
aovfit <- aov(as.formula(frmla), npk);
print(model.tables(aovfit, "means"));

## End of example

Output of sessionInfo():
R version 2.11.1 (2010-05-31)

[1] LC_COLLATE=Finnish_Finland.1252  LC_CTYPE=Finnish_Finland.1252
[3] LC_MONETARY=Finnish_Finland.1252 LC_NUMERIC=C
[5] LC_TIME=Finnish_Finland.1252

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

loaded via a namespace (and not attached):
[1] tools_2.11.1

br Hannes G.

More information about the R-help mailing list