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
