我正在阅读有关中的数据分析和图形的this book,我认为lme4的当前版本与其使用的版本(我有2007年和2010年版本)之间存在一些问题。我当前的问题与书中的p340有关,作者在其中说明了如何使用lmList提取每个人的斜率。代码如下:library(lme4)data(Orthodont, package = "nlme")ab <- coef(lmList(distance ~ age|Subject, data=Orthodont))这应该很简单,在书中看起来也是如此。但是,我得到以下信息:Error in eval(expr, envir, enclos) : object 'Subject' not foundIn addition: Warning message:In Ops.ordered(age, Subject) : '|' is not meaningful for ordered factors这在三个层面上令人困惑:为什么尽管在Orthodont中却找不到Subject?R如何知道未找到的变量是有序因子?为什么此回归对于有序因素仍然不起作用?有什么不同?我尝试了一种解决方法,并通过str(Orthodont)检查第一个命令是否确实创建了一个新的变量sub2,该变量具有模式和类字符:Orthodont$sub2<-as.character(Orthodont$Subject)ab <- with(Orthodont,coef(lmList(distance ~ age|sub2, data=Orthodont)))我收到一条相同的错误消息:未找到sub2,并警告sub2是有序因素。有任何想法吗? 最佳答案 此问题已记录在案,但显然不如应记录在案:来自?lmList: “数据”应该是数据框(例如,不是“ nlme”包中的“ groupedData”对象);首先使用“ as.data.frame”来转换数据。您遇到麻烦而作者没有遇到麻烦的原因是,他们是从Orthodont包(其中将其存储为常规数据帧,而不是MEMSS对象)中提取了groupedData数据,而不是从。由于我现在不记得的原因,由于代码的设计方式,自动完成从nlme到groupedData的转换(这是明智的选择)比看起来要难。在https://stat.ethz.ch/pipermail/r-sig-mixed-models/2013q4/021283.html和https://github.com/lme4/lme4/issues/26上也对此进行了讨论。 08-05 02:29