我正在尝试使用nlme包中的lmList()为不同级别的因子生成箱图。虽然它对帮助页面中的示例有效,但我的数据会返回以下错误:
library(nlme)
##dataframe used (simplified):
**data.1**
IDf x.var.1 y.var.1
1 1 1 1.856491
2 1 2 2.999224
3 1 3 3.943896
4 1 4 4.903249
5 1 5 6.034319
6 2 6 6.986847
7 2 7 8.024806
8 2 8 9.139255
9 2 9 9.986437
10 2 10 10.760508
##creating the lmlist file fm1
fm2 <- lmList(y.var.1 ~ x.var.1 | IDf, data.1, na.action = na.exclude)
##plotting fm2
Call:
Model: y.var.1 ~ x.var.1 | IDf
Data: data.1
Coefficients:
(Intercept) x.var.1
1 0.8695317 1.0259681
2 1.3724091 0.9508952
Degrees of freedom: 10 total; 6 residual
Residual standard error: 0.1042786
##plotting boxplots ##(or any kinds of plots really)
> plot(fm2, IDf ~ resid(.))
##returning error:
Error in plot.lmList(fm2, IDf ~ resid(.)) : object 'cF' not found
现在我已经进行了搜索和搜索,但我似乎无法弄清楚这个对象'cf'应该是什么意思,任何帮助都将不胜感激!
##EDIT:
> dput(data.1)
structure(list(IDf = c(1, 1, 1, 1, 1, 2, 2, 2, 2, 2), x.var.1 = 1:10,
y.var.1 = c(1.85649137285461, 2.99922390104585, 3.94389558063648,
4.90324945760581, 6.03431888678115, 6.98684730318977, 8.0248061251629,
9.13925481513909, 9.98643662828079, 10.7605079666861)), .Names = c("IDf",
"x.var.1", "y.var.1"), row.names = c(NA, -10L), class = "data.frame")
答案 0 :(得分:1)
试试这个:
library(nlme)
fm2 <- lmList(y.var.1 ~ x.var.1 | IDf, data.1, na.action = na.exclude)
lapply(fm2 , function(lmob) plot(lmob$model$x.var.1, lmob$residuals) )
nlme :: lmList中的lmList函数不返回S4对象,而是返回带有编号条目的更传统的列表(对应于“IDf”中的数字。
早期的评论和代码(有点)因为nlme中的lmList与lme4 :: lmList完全不同:
我猜你正在使用我无法在lme4中找到lmList
的软件包是lme4。plot.lmList
的帮助页面,但是我确实看到该函数存在。我希望找到是否有文件支持表格:plot(lmList-object,formula)。使用showMethods我看到应该有这样的支持。
showMethods("plot")
#-------
Function: plot (package graphics)
...snipped
x="lmList.confint", y="ANY"
x="lmList", y="formula"
(inherited from: x="ANY", y="ANY")
...snipped...
我不确定对resid
的函数调用在RHS上工作的可能性有多大,或者分组参数在LHS上工作的可能性有多大。我无法让plot.lmList最终工作。我开始工作的是这个黑客:
lapply(fm2@.Data, function(lmob) plot(seq_along(lmob$residuals), lmob$residuals) )
我也有这个工作:
lapply(fm2@.Data, function(lmob) plot(lmob$model$x.var.1, lmob$residuals) )