gpt4 book ai didi

R:使用 lme4 的 lmList 出现奇怪的错误

转载 作者:行者123 更新时间:2023-12-04 11:45:32 26 4
gpt4 key购买 nike

我正在阅读 this book关于 R 中的数据分析和图形,我认为当前版本的 lme4 和他们使用的版本(我有 2007 和 2010 版本)之间存在一些问题。我当前的问题涉及本书的第 340 页,作者展示了如何使用 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

这在三个层面上令人困惑:

  1. 为什么在 Orthodont 中找不到 Subject?
  2. R 如何知道未找到的变量是有序因子?
  3. 为什么这个回归对有序因子不起作用?有什么区别?

我尝试了一种解决方法并通过 str(Orthodont) 检查第一个命令是否确实创建了一个具有模式和类字符的新变量 sub2:

Orthodont$sub2<-as.character(Orthodont$Subject)
ab <- with(Orthodont,coef(lmList(distance ~ age|sub2, data=Orthodont)))

我收到一条相同的错误消息:sub2 not found 和 sub2 是有序因子的警告。

有什么想法吗?

最佳答案

此问题记录在案,诚然,它没有应有的清晰:来自 ?lmList:

‘data’ should be a data frame (not, e.g. a ‘groupedData’ object from the ‘nlme’ package); use ‘as.data.frame’ first to convert the data.

你遇到麻烦而作者没有遇到的原因是他们从 MEMSS 包中提取了 Orthodont 数据(它作为常规数据存储在那里frame,不是 groupedData 对象)而不是来自 nlme

由于我现在不记得的原因,自动执行从 groupedDatadata.frame 的转换(这将是明智的做法)更难由于代码的设计方式,看起来比看起来的要少。

这也在 https://stat.ethz.ch/pipermail/r-sig-mixed-models/2013q4/021283.html 中进行了讨论和 https://github.com/lme4/lme4/issues/26

关于R:使用 lme4 的 lmList 出现奇怪的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23326320/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com