lsmeans:eval(predvars,data,env)中的错误:找不到对象“位置”

时间:2018-12-20 16:23:38

标签: r lsmeans

所以我用CLM进行了双向有序回归,其特定列为:gra,位置,物种,并且有效:

gra.f <- clm(gra ~ location + species + location:species, data = gra)

现在我正尝试使用lsmeans函数成对运行:

pwise <- lsmeans(gra.f, 
                   pairwise ~ location + species, 
                   adjust="tukey")

我得到: eval(predvars,data,env)中的错误:找不到对象“位置”

我不确定我是什么问题

PS:如果我删除位置并尝试只做物种,则错误仍显示为“找不到位置”

1 个答案:

答案 0 :(得分:1)

lsmeans必须重建数据集(包括所有预测值)才能确定参考网格。您报告的错误消息是由于无法执行此操作而导致的。我唯一能猜到的是,用于拟合模型的数据框不再位于工作空间或搜索路径中。

如果恢复数据集或使其可见,lsmeans应该可以再次使用。或者,将, data = gra添加到lsmeans()调用中。

更新1

事实证明,此代码中出现问题,以处理此模型秩不足的事实。具有讽刺意味的是,我认为它与 ordinal 软件包的NEWS文件中的此项相关: 2014-11-12: - Reimplementation of formula, model.frame and design matrix processing motivated by a bug in model.matrix.clm and predict.clm reported by Russell Lenth 2014-11-07 when implementing lsmeans support for clm::ordinal.

我已经添加了一些代码来解决此问题,显然,

  1. 我的解决方法仅在上述更新之前有效
  2. 在过去4年中,遇到排名不足的用户并不多  顺序模型;或者至少我没有听到他们的来信。

我现在要记住哪些代码行是我的解决方法,哪些仍然需要...解决后,我会将其推送到github存储库中以获取意思,并在一个月左右的时间内,意思将在CRAN上进行更新(该版本将大于1.3.1)。更新 emmeans 也会使 lsmeans 正常工作,因为现在它只是 emmeans 的前端。

更新2

现在似乎已解决:

> lsmeans(gra.f, 
+         pairwise ~ location + species, 
+         adjust="tukey")

$`lsmeans`
 location species  lsmean    SE  df asymp.LCL asymp.UCL
 B10      HD       nonEst    NA  NA        NA        NA
 B30      HD       nonEst    NA  NA        NA        NA
 B50      HD       nonEst    NA  NA        NA        NA
 B70      HD      -0.2802 0.191 Inf  -0.65519    0.0949
 Black Pt HD      -0.1298 0.325 Inf  -0.76730    0.5077
 Bolongo  HD       nonEst    NA  NA        NA        NA
      ... Several rows of output omitted ...
 SMA      TT       nonEst    NA  NA        NA        NA

Confidence level used: 0.95 

$contrasts
 contrast                  estimate    SE  df z.ratio p.value
      ... MANY rows of output omitted ...
 B70,HD - Magens,HD          nonEst    NA  NA      NA      NA
 B70,HD - SMA,HD             nonEst    NA  NA      NA      NA
 B70,HD - B10,HS           -0.71283 0.225 Inf  -3.162  0.4869
 B70,HD - B30,HS            0.07174 0.227 Inf   0.316  1.0000
 B70,HD - B50,HS           -0.74197 0.228 Inf  -3.253  0.4093
 B70,HD - B70,HS           -0.72863 0.226 Inf  -3.229  0.4291
 B70,HD - Black Pt,HS      -0.10537 0.220 Inf  -0.478  1.0000
 B70,HD - Bolongo,HS         nonEst    NA  NA      NA      NA
 B70,HD - Fortuna,HS       -0.64301 0.240 Inf  -2.684  0.8656
 B70,HD - Lindberg,HS      -0.10132 0.220 Inf  -0.460  1.0000
 B70,HD - Magens,HS         0.02351 0.226 Inf   0.104  1.0000
 B70,HD - SMA,HS           -0.05100 0.219 Inf  -0.232  1.0000
 B70,HD - B10,HW             nonEst    NA  NA      NA      NA
 B70,HD - B30,HW             nonEst    NA  NA      NA      NA
 B70,HD - B50,HW             nonEst    NA  NA      NA      NA
 B70,HD - B70,HW             nonEst    NA  NA      NA      NA
 B70,HD - Black Pt,HW        nonEst    NA  NA      NA      NA
 B70,HD - Bolongo,HW         nonEst    NA  NA      NA      NA
 [ reached getOption("max.print") -- omitted 1059 rows ]

P value adjustment: tukey method for comparing a family of 50 estimates

但是,您的问题才刚刚开始。由于缺少数据,您有大量不可估计的组合。祝你好运...

我将更新版本推送到https://github.com/rvlenth/emmeans