我正在对一堆变量进行chisq.test
,但它出乎意料地失败了:
Error in chisq.test(var1, var2) : 'x' and 'y' must have at least 2 levels
快速检查得出:
> table(var1,var2)
var2
var1 1 2 3 4 5 6
0 34 48 153 710 1667 2177
1 0 0 0 0 0 0
因此,列联表有一行为空,只剩下一行。如何对这些变量进行测试并在循环中跳过它们?
答案 0 :(得分:0)
您可以使用nlevels
来获取因子中的级别数。例如,你可以这样做:
if (nlevels(var1) > 1 & nlevels(var2) > 1) {
chisq.test(var1, var2)
} else {
warning('Not enough levels to perform chi-sq test.')
}