(R) 为两个不同的变量获取 "variable length differ"

(R) Getting "variable length differ" for two different variable

我从调查中创建了两个名为"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

mid.income = 95 100 90 90 85 95 100 95 80

但是当尝试调用 aov(low.income~mid.income) 时它给我 Error in model.frame.default(formula = low.income ~ mid.income, drop.unused.levels =真): 可变长度不同(找到 '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看看结果是一样的

注意:当您有 2 个以上的组时,您只能 运行 方差分析。如果你只有 2 个组,运行 一个 t.test。回想一下 ANOVAt.test

的概括