lmList plotting error:找不到对象'cF'

时间:2013-02-28 16:24:36

标签: r plot

我正在尝试使用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")

1 个答案:

答案 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完全不同:

我猜你正在使用lmList的软件包是lme4。我无法在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) )