新しいlmerにはまる [統計]
足軽日記: lmer研究(6)lme4 Version: 0.999375-17に解説があるが、最近のlmer()は いろいろかわっている。それはいいのだが、以前は動作していたコードが動かないという現象が発生している。なんだか関数内での変数のスコープがおかしいようだ。
例
としておいて、関数を呼び出すと:
例
library(lme4) x <- runif(100, 0, 10) b <- rep(seq(1, 5), 20) r <- rnorm(5, 0, 1) y <- 2 * x + 3 + r[b] + rnorm(100, 0, 1) f.lmer <- function(obj) { f <- as.formula(paste(obj, "~ x + (1|as.factor(b))")) lmer(f, family=gaussian) } f.glm <- function(obj) { f <- as.formula(paste(obj, "~ x + as.factor(b)")) glm(f, family=gaussian) }
としておいて、関数を呼び出すと:
> f.lmer("y") 以下にエラー inherits(object, "formula") : オブジェクト "f" は存在しません > f.glm("y") Call: glm(formula = f, family = gaussian) Coefficients: (Intercept) x as.factor(b)2 as.factor(b)3 as.factor(b)4 3.8198 2.0396 -0.9259 -2.3038 -2.0689 as.factor(b)5 -2.6553 Degrees of Freedom: 99 Total (i.e. Null); 94 Residual Null Deviance: 3216 Residual Deviance: 100.1 AIC: 297.9
最近lme4が立て続けにアップグレードしましたね。
v.0.999375-20が最新のようです。
このバージョンでも上のコードが動かないですね。
近いうちにまだアップグレードするんでしょうかね?
by martesorex (2008-07-05 21:04)
ううむ。落ち着くまでもうちょっと時間がかかるかもしれませんね。
by hiroki (2008-07-05 22:21)