When I call the Anova function on a lme object from inside a function environment I get an error:
Error in eval(expr, envir, enclos) : object 'y' not found However, if I call the exact same code in the global environment there is no error. My theory is that for some reason the Anova.lme function always searches the global environment for variables rather than starting in its parent environment. Since the function runs correctly on lmerMod objects, and I typically prefer lme4 to nlme this is just of academic interest. ######### # Steps to reproduce the error # Load Packages library(car) library(lme4) library(nlme) # Create random data. Y <- rnorm(50) X <- rnorm(50) Subject <- factor(rep(LETTERS[1:5],each=10)) # Define function to fit a MEM and run the ANOVA. fun <- function(y,x,sub){ #mod <- lmer(y ~ x +(1 | sub) ) mod <- lme(y~x,random=~1|sub) print('lme model ran successfully.') Anova(mod) print('Anova function ran successfully.') } # Function produces an error message. fun(Y,X,Subject) # if run outside of a function, it runs cleanly. mod <- lme(Y~X,random=~1|Subject) Anova(mod) mod1 <- lmer(Y ~ X +(1 | Subject) ) Anova(mod1) [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.