所以我有一个有两列的表;第一个处理和第二个响应,称为 V1 和 V2(默认值)。我试过了
aov.ex2 = aov(V2~V1, data=ex2)
summary(aov.ex2)
并得到了一些非常奇怪的东西——治疗的平方和只有 1 df,尽管事实上应该有30 - 1 = 29
df 做V1~V2
给了我相同的结果。我究竟做错了什么?
所以我有一个有两列的表;第一个处理和第二个响应,称为 V1 和 V2(默认值)。我试过了
aov.ex2 = aov(V2~V1, data=ex2)
summary(aov.ex2)
并得到了一些非常奇怪的东西——治疗的平方和只有 1 df,尽管事实上应该有30 - 1 = 29
df 做V1~V2
给了我相同的结果。我究竟做错了什么?
试试这个
aov.ex2 = aov(V2~factor(V1), data=ex2)
summary(aov.ex2)
扩展@MYaseen208 的回复:
在过去,计算机程序不能很好地处理非数值数据,因此将分类变量重新编码为数值变量以将数据输入计算机是很常见的。然后这些程序需要用户告诉他们这个看起来像数字变量的变量实际上代表了类别。这可以通过以下两种方式之一完成:作为数据的属性或分析的属性。R 采用这样的方法,即此类事物是数据的属性而不是分析(这对我来说更有意义),因此该aov
函数没有任何参数来指定哪些预测变量是分类的,而是查看数据来确定这一点. 由于aov
函数还可以分析协方差和更一般的线性模型,它可以接受分类和数字预测变量(因此不会假设一切都是分类的)。您没有告诉我们您是如何输入数据的,但是无论您如何输入,它对 R 来说都是数字数据,而且您从未告诉过它,所以它一直假设它是数字的。您需要告诉 R 它是 categorical factor(V1)
。可以对每次分析都执行此操作,但最好执行一次,在创建/读取数据时或之后执行一次,ex2$V2 <- factor(ex2$V2)
以便对该数据的每个分析/图表/摘要都意识到它是分类的并适当地对待它.