【问题标题】:Error message in lme4::glmer: " 'what' must be a character string or a function"lme4::glmer 中的错误消息:“'what' 必须是字符串或函数”
【发布时间】:2013-11-05 23:21:25
【问题描述】:

我正在运行一个多级模型。我使用以下命令,以validatedRS6 作为结果,random 作为预测变量,clustno 作为随机效应变量。

new<-as.data.frame(read.delim("BABEX.dat", header=TRUE))
install.packages("lme4")
library(lme4)
model1<- glmer(validatedRS6 ~ random + (1|clustno), data=new, family=binomial("logit"), nAGQ = 1L)

但是,我收到以下错误

do.call(new, c(list(Class = "glmResp", family = family), ll[setdiff(names(ll), )) 中的错误: 'what' 必须是字符串或函数

我完全不知道出了什么问题,并且已经搜索了互联网。很抱歉,我无法提供数据,因为它来自尚未公布的干预措施。

【问题讨论】:

  • 你至少需要发布str(new)的结果。 (同样但可能是切线的,您不需要将as.data.frame 包裹在read.delim 的结果周围。)
  • 我可以通过简单地在我的全局环境中添加一个名为“new”的变量来重现这一点。会修复。解决方法:new2 &lt;- new; rm("new"); glmer(..., data=new2, ...)

标签: r lme4


【解决方案1】:

(从评论扩展)。

恭喜,您在lme4 中发现了一个错误!现在已修复:

https://github.com/lme4/lme4/commit/9c12f002821f9567d5454e2ce3b78076dabffb54

这是由于在全局环境中有一个名为 new 的变量(在代码的深处,lme4 使用 do.call(new,...) 并找到您的变量 new 而不是内置函数 @987654327 @)。

您可以使用 devtools::install_github() 从 Github 安装修补版本(但您需要编译工具等)。或者,有一个非常简单的解决方法 - 只需调用除 new 之外的任何变量(您不能只是复制它,即 new2 &lt;- new - 您还必须确保删除旧版本(rm("new") ))。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-14
    • 1970-01-01
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-26
    • 2011-02-27
    相关资源
    最近更新 更多