【问题标题】:Error in UseMethod("cld") : no applicable method for 'cld' applied to an object of class "data.frame"UseMethod(“cld”)中的错误:没有适用于“cld”的方法应用于“data.frame”类的对象
【发布时间】:2020-02-20 06:30:37
【问题描述】:

我正在运行这个混合模型:

 dflm1 <- lmer(formula=df[,16] ~  trt + (1|id), data=df)
emm <- emmeans(dflm1,'trt')
library(multcomp)
cld(emm) 
Error in UseMethod("cld") : 
  no applicable method for 'cld' applied to an object of class "data.frame"

很遗憾,我无法上传数据。我已经查看了有关此的其他问题,但它不正确。我已将 trt 和 id 都更改为数字和因子,但会发生相同的错误。有谁知道我为什么会收到这个错误?早些时候它起作用了,所以我一定改变了一些东西,但我不知道是什么!!?

【问题讨论】:

  • 您正在尝试将数据帧传递给 cld 函数,但这没有任何意义 - 此函数必须提供 ghlt 模型。你需要先做一个。为此,您可以将 dflm1 从 multcomp 传递给 ghlt 函数。
  • @Allan Cameron,谢谢!你能详细说明我是怎么做到的吗?
  • cld 的帮助页面有很多例子(向下滚动到页面底部)。 也许试试glht1 &lt;- glht(dflm1, linfct = mcp(trt = "Tukey")); cld(glht1)
  • 重新运行代码,我猜,因为emmeans() 产生一个emmGrid 对象,而不是data.frame,并且 一个emmGrid 的方法.您不必将其转换为 glht

标签: r


【解决方案1】:

我尝试使用 CLD(emm) 而不是 cld(emm) 并且成功了!这是我的来源: https://rdrr.io/cran/emmeans/man/CLD.emmGrid.html

希望这行得通!

【讨论】:

    猜你喜欢
    • 2019-09-23
    • 2019-09-12
    • 2022-12-15
    • 2023-01-22
    • 2018-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多