我使用glmulti
包装器进行glmer(二项式),而summary
是:
This is glmulti 1.0.7, Apr. 2013.
Length Class Mode
0 NULL NULL
按照这个帖子所做的,虽然这是lmer
,
glmulti runs indefinitely when using genetic algorithm with lme4,我得到与上面相同的结果。可能是因为版本已经改变了,包装必须以不同的方式完成吗?以下是虚拟代码(从上面的链接中解除):
x = as.factor(round(runif(30),1))# dummy grouping factor
yind = runif(30,0,10) # mock dependent variable
a = runif(30) # dummy covariate
b = runif(30) # another dummy covariate
c = runif(30) # an another one
d = runif(30)
tmpdata <- data.frame(x=x,yind=yind,a=a,b=b,c=c,d=d)
lmer.glmulti <- function (formula, data, random = "", ...) {
lmer(paste(deparse(formula), random), data = data, REML=F, ...)
}
summary(glmulti(formula = yind~a*b*c*d,
data = tmpdata,
random = '+(1|x)',
level = 2,
method = 'h',
crit = 'aicc',
marginality = TRUE,
fitfunc = lmer.glmulti))
lme4
版本:1.1.5
glmulti
版本:1.0.7
&#34; R版本3.0.2(2013-09-25)&#34;
解
这有效:
lmer.glmulti <- function (formula, data, random, ...) {
lmer(paste(deparse(formula), random), data = data)
}
glmulti(y = yind~a*b*c*d,
data = tmpdata,
random = '+(1|x)',
level = 2,
method = 'h',
crit = 'aicc',
marginality = TRUE,
fitfunc = lmer.glmulti)
packageVersion(&#39; lme4&#39;) “1.1.5”
packageVersion(&#39; glmulti&#39;) “1.0.7”
R.version:3.1.0
仅供参考:来自软件包维护者:
&#34; fitfunc必须是函数的名称,因此您的其他调用(包括glmulti调用中的函数定义)不起作用。&#34;
&#34;你将第一个参数命名为glmulti&#39; formula&#39;,它必须是未命名的,或者&#39; y&#39; ...抱歉。但是y是一个公式(如果传递一个字符串,它只是因变量)。 &#34;