【问题标题】:Error in mcp2matrix(model, linfct = linfct) : Variable(s) ‘Methode’ of class ‘integer’ is/are not contained as a factor in ‘model’mcp2matrix(模型,linfct = linfct)中的错误:“整数”类的变量“方法”是/不包含在“模型”中
【发布时间】:2021-04-15 08:58:33
【问题描述】:

我不明白为什么它在这里不起作用是我的代码:

     library(lme4,multcomp)

tijd <- c(7.667, 9.5, 6.467, 10.033, 9.767, 29.133, 15.933, 8.1, 8.6, 
          12.3, 5.867, 13.667, 12.933, 11.933, 27.2, 11.567, 10.9, 12.567, 
          9.033, 12.6, 13.133, 17.067, 14.333, 15.2, 9.1, 9.167, 8.4, 11.4, 
          18.467, 15.633, 10.4, 10.767, 12.7, 7.667, 9.867, 36.167, 20.4, 
          33.8, 15.767, 20.1, 10.533, 17.7, 62.667, 21.133, 40.133, 9.2, 
          19.467, 7.667, 8.867, 20.333, 14.367, 10.167, 28.4, 11.367, 10.867, 
          22.1, 24.8, 13.3, 17.067, 10.967, 12.333, 28.867, 21.1)

week <- c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3)

Methode <- c(1, 1, 2, 2, 3, 3, 4, 4, 1, 1, 2, 2, 3, 3, 4, 
            4, 1, 1, 2, 2, 3, 3, 4, 4, 1, 1, 2, 2, 3, 3, 4, 
            1, 1, 2, 2, 3, 3, 4, 1, 1, 2, 2, 3, 3, 4, 1, 1, 
            2, 2, 3, 3, 1, 1, 2, 2, 3, 3, 1, 1, 2, 2, 3, 3)

freq <- c(c(5.9, 5.9, 5.9, 5.9, 5.9, 5.9, 5.9, 5.9, 8, 8, 8, 8, 8, 8, 8, 
            8, 10, 10, 10, 10, 10, 10, 10, 10, 5.9, 5.9, 5.9, 5.9, 5.9, 5.9, 
            5.9, 8, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 10, 10, 10, 5.9, 5.9, 
            5.9, 5.9, 5.9, 5.9, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 10, 10))

ID <-c(1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 
       8, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 8, 
       1, 2, 3, 4, 5, 6, 8, 1, 2, 3, 4, 5, 6, 8, 1, 2, 
       3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6)

week <- as.factor(week)
Methode <- as.factor(Methode)
ID <- as.factor(ID)


M1 <- lmer(log(tijd) ~ Methode + (1|freq) + (1|week) + (1|ID), data = data)
summary(M1)
anova(M1, type = "III", test = "F")

plot(M1)
plot(cooks.distance(M1))


summary(glht(M1, linfct = mcp(Methode = "Tukey")))

这是我的数据集的第一行:https://imgur.com/RYr9nNp 我目前正在写我的学士论文,如果你能帮助我,那就太好了。

提前致谢:)

【问题讨论】:

  • 您好,我们不知道您的数据是什么样的,因此很难为您提供帮助。您可以使用数据示例(即第一行)编辑您的帖子吗?谢谢
  • @BastienDucreux 我刚刚添加了一个数据示例。如果你想知道荷兰语单词是什么意思 tijd=time(在这个实验中,螃蟹通过障碍物所需的时间),其余的在英语中是完全一样的:)
  • @user213544 我发现很难理解什么是 MR 示例。也许你的意思是:这个实验是在用不同方法处理的 8 只螃蟹(ID)上进行的。然后他们必须在不同的河流流速(频率)下进行一次河流跑步,持续 3 周才能看到长期效果。这是否使它更清晰,或者您是否需要可重复的数据集,因为我不知道该怎么做。我的编程技能仅限于一些基本的 R 统计分析。
  • @user213544 感谢您对我的耐心。我想我修复了它,现在问题中有一个最小的可重现示例:)
  • @user213544 已修复 ;)

标签: r lme4 anova


【解决方案1】:

在您的 lmer 代码中,您依赖 data 但您没有将 data$Methode 转换为因子,那么您的代码应该是:

data$week <- as.factor(data$week)
data$Methode <- as.factor(data$Methode)
data$ID <- as.factor(data$ID)

M1 <- lmer(log(tijd) ~ Methode + (1|freq) + (1|week) + (1|ID), data = data)

您在图像中显示的数据不包含与您的 lmer 代码相同的列名称,因此您必须注意(例如:frequentie 和 freq)

【讨论】:

  • 天哪,这是一个新手错误。感谢您的帮助:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-21
  • 1970-01-01
  • 2021-09-12
  • 2012-06-17
相关资源
最近更新 更多