变量已在“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)
我想运行 对模型的不同变量进行多重比较分析。我的想法是:
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)