我从调查中创建了两个分别称为“ low.income”和“ mid.income”的变量,它们是基于参与者收入获得的变量。在这里,您可以看到变量的样子:
low.income = 75 95 85 100 85 100 85 90 75 90 65 80 85 90 85 70 95 85 100 95 85 95 90 95 95
中等收入= 95 100 90 90 85 95 100 95 80
但是当尝试调用aov(low.income~mid.income)
时,会给我model.frame.default(formula = low.income〜mid.income,drop.unused.levels = TRUE)中的错误:可变长度有所不同(可找到“ mid.income”)
所以,我该怎么办?
这是不正确的,我认为您正在寻找t.test
即
t.test(low.income, mid.income, var.equal = TRUE)
要使用公式方法,您必须创建一个带有级别和收入的数据框。它应如下所示:
data <- data.frame(level = rep(paste0(c("low","mid"),".income"),c(25,9)), income = c(low.income,mid.income))
level income
1 low.income 75
2 low.income 95
3 low.income 85
4 low.income 100
5 low.income 85
6 low.income 100
: : :
29 mid.income 90
30 mid.income 85
31 mid.income 95
32 mid.income 100
33 mid.income 95
34 mid.income 80
现在您可以做:
t.test(income~level,data,var.equal = TRUE)
好,因为您使用的是aov
,所以我将给您一个示例,说明如何执行此操作:
aov(income~level,data)
这两个将导致完全相同的结果。您可以运行TukeyHSD
以查看结果是否相同。
注意:只有两个以上的组才能运行ANOVA。如果只有2个组,请运行t.test
。回想一下ANOVA
是t.test