问题描述
我有这个解决方案,它允许我在 Fisher 测试中单独查看我的类型列的值。 (也可以把fisher换成chisq.test)
但我尝试将其应用于 anova 测试并出现错误。
这是我的原版
# fisher test status on types individually
fish = lapply(unique(df$type),function(i){
ctest = fisher.test(table(df$type == i,df$status))
data.frame(type = i,pvalue = ctest$p.value)
})
type pvalue
warning 7.94658438e-23
noncontact 5.84265922e-01
issue 4.18245681e-04
success 1.67653259e-09
这是我尝试进行方差分析的尝试,但出现此错误
anov = lapply(unique(df$numtype),function(i){
atest = aov(table(df$numtype == i ~ df$status))
data.frame(numtype = i,pvalue = atest$p.value)
})
Error: unique() applies to only vectors
而且我使用的是数据框,我认为这不是问题。
我使用的列是这样的(数字列仅用于 anova ofcourse)
影响 | 类型 | 数字类型 | 状态 |
---|---|---|---|
1 | 非接触式 | 1 | 正面 |
2 | 警告 | 2 | 拒绝 |
3 | 问题 | 3 | 正面 |
4 | 成功 | 4 | 正面 |
5 | 成功 | 1 | 不适用 |
6 | 成功 | 5 | 正面 |
有谁知道如何使这项工作适用于 anova 测试?
解决方法
你需要这个吗?
lapply(split(df,df$numtype),function(x){
atest = aov(numtype~status,x)
data.frame(numtype = x$numtype[1],pvalue = atest$p.value)
}) -> result
result