变量已在“linfct”中指定,但在“model”中找不到!

Variable(s)have been specified in ‘linfct’ but cannot be found in ‘model’!

我想运行 对模型的不同变量进行多重比较分析。我的想法是:

a
   V1   V2
1  t1  5.0
2  t1  4.0
3  t1  2.0
4  t1  5.0
5  t1  5.0
6  t2  4.0
7  t2  3.0
8  t2  4.0
9  t2  9.0
10 t2  3.0
11 t3  2.0
12 t3  3.0
13 t3  2.0
14 t3  6.0
15 t3  8.0

tuk<-glht(fit,linfct=mcp(a$V1="Tukey"))

当我运行时,显示:

“Variable(s) ‘trt’ have been specified in ‘linfct’ but cannot be found in ‘model’!”

不知道怎么处理。

您似乎以某种方式更改了数据的名称 and/or 计算 fit 和调用 glht 之间的变量。您的代码有 V1,但错误有 trt。很难说得更详细,因为您的示例不能完全重现(缺少 fit 的计算)。如果我重新运行我假设你做了(或应该做)的事情,一切都会顺利进行。

首先,让我们读取数据:

a <- read.table(textConnection("   V1   V2
1  t1  5.0
2  t1  4.0
3  t1  2.0
4  t1  5.0
5  t1  5.0
6  t2  4.0
7  t2  3.0
8  t2  4.0
9  t2  9.0
10 t2  3.0
11 t3  2.0
12 t3  3.0
13 t3  2.0
14 t3  6.0
15 t3  8.0"), header = TRUE)

然后,我们可以拟合我假设应该是具有响应 V2 和解释变量 V1:

的线性模型
fit <- lm(V2 ~ V1, data = a)

然后可以调用multcomp包:

library("multcomp")
summary(glht(fit, linfct = mcp(V1 = "Tukey")))
##          Simultaneous Tests for General Linear Hypotheses
## 
## Multiple Comparisons of Means: Tukey Contrasts
## 
## Fit: lm(formula = V2 ~ V1, data = a)
## 
## Linear Hypotheses:
##                Estimate Std. Error t value Pr(>|t|)
## t2 - t1 == 0  4.000e-01  1.424e+00   0.281    0.958
## t3 - t1 == 0  5.617e-16  1.424e+00   0.000    1.000
## t3 - t2 == 0 -4.000e-01  1.424e+00  -0.281    0.958
## (Adjusted p values reported -- single-step method)

我遇到了同样的问题,问题似乎在于模型的声明方式。如果你使用它就不起作用:

fit <- lm(a$V2 ~ a$V1)

但如果您将模型声明为:

fit <- lm(V2 ~ V1, data = a)