【发布时间】:2014-04-27 17:04:16
【问题描述】:
我正在阅读this book 关于 R 中的数据分析和图形的内容,我认为当前版本的 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 found
In addition: Warning message:
In Ops.ordered(age, Subject) : '|' is not meaningful for ordered factors
这在三个层面上令人困惑:
- 为什么在正畸中却找不到对象?
- R 如何知道未找到的变量是有序因子?
- 为什么这种回归对有序因子不起作用?有什么区别?
我尝试了一种解决方法并通过str(Orthodont) 检查第一个命令是否确实创建了一个具有模式和类字符的新变量 sub2:
Orthodont$sub2<-as.character(Orthodont$Subject)
ab <- with(Orthodont,coef(lmList(distance ~ age|sub2, data=Orthodont)))
我收到了相同的错误消息:未找到 sub2 并警告说 sub2 是有序因子。
有什么想法吗?
【问题讨论】:
-
@BBolker,使用 nlme::lmList 时问题消失了......
-
我很欣赏该链接的可复制性,它帮助我了解了更多信息,但它似乎是该书盗版的链接。作为对作者的礼貌,您能否编辑掉链接?