我想对我成功完成的重要方差分析进行事后测试。
我有5个条件(target_onset),我想在这些条件中比较称为data_clean的df中的反应时间(key_resp.rt)。 target_onset和key_resp.rt是列。
这就是我做方差分析的方法,效果很好:
cond.aov <- aov(data_clean$target_onset ~ data_clean$key_resp.rt)
summary(cond.aov)
接下来,我想看看事后测试显示了什么,以找出5个条件之间的显着差异。
我知道TukeyHSD仅考虑因素。因此,我将感兴趣的列进行了因子分解:
data_clean$target_onset <- factor(data_clean$target_onset)
data_clean$key_resp.rt <- factor(data_clean$key_resp.rt)
TukeyHSD(aov(data_clean$target_onset ~ data_clean$key_resp.rt))
但是,当我运行此代码时,出现以下错误:
类(y)中的错误<-oldClass(x):将类“ factor”添加到 无效的对象另外:警告消息:1:在model.response(mf, “ numeric”):将类型=“ numeric”与因子响应一起使用将是 被忽略的2:在Ops.factor(y,z $ residuals)中:“-”对于 因素
任何建议都会有所帮助。预先感谢。
答案 0 :(得分:1)
编辑第一次,我错过了您也将公式推后的事实!
在发布target_onset
函数之前,您需要在 之前将aov
作为因素。您完全根本不想让key_resp.rt
成为一个因素。
所以顺序应该是...
data_clean$target_onset <- factor(data_clean$target_onset)
cond.aov <- aov(key_resp.rt ~ target_onset, data = data_clean)
summary(cond.aov)
TukeyHSD(cond.aov)
因变量(响应时间位于代字号的左侧,独立分组变量位于右侧。
如果您不将条件/分组变量设置为factor
aov
,而实际上使用分组列中的数字执行lm
,则可以看到cond.aov
的自由度。
只要您已有一个aov
对象,就可以使对TukeyHSD
的调用尽可能简单