Dirk Eddelbuettel brought the following problem to my attention. The code is abstracted from the appendix on mixed models from my R and S-PLUS Companion:
> set.seed(12345) # for reproducibility > library(nlme) Loading required package: lattice > data(MathAchieve) > data(MathAchSchool) > attach(MathAchieve) > mses <- tapply(SES, School, mean) > detach(MathAchieve) > Bryk <- as.data.frame(MathAchieve[, c("School", "SES", "MathAch")]) > names(Bryk) <- c("school", "ses", "mathach") > sample20 <- sort(sample(7185, 20)) > Bryk$meanses <- mses[as.character(Bryk$school)] > Bryk[sample20,] Error in as.data.frame.default(x[[i]], optional = TRUE) : can't coerce array into a data.frame >
This is with R 1.8.1 under Windows 2000. The same code works fine with R 1.8.0. As Dirk discovered, the problem disappears if the assignment
Bryk$meanses <- mses[as.character(Bryk$school)]
is changed to
Bryk$meanses <- as.vector(mses[as.character(Bryk$school)])
It seems to me that it if $ doesn't want to coerce the array mses[as.character(Bryk$school)] to a vector (as I guess was previously the case), then the error should have been produced at that point.
Thanks, John ----------------------------------------------------- John Fox Department of Sociology McMaster University Hamilton, Ontario, Canada L8S 4M4 email: [EMAIL PROTECTED] phone: 905-525-9140x23604 web: www.socsci.mcmaster.ca/jfox
______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-devel