1

我正在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

所以列联表有一行是空的,只剩下一行。如何对这些变量进行测试并在循环中跳过它们?

4

1 回答 1

0

您可以使用nlevels来获取因子中的级别数。例如,您可以执行以下操作:

if (nlevels(var1) > 1 & nlevels(var2) > 1) {
    chisq.test(var1, var2)
} else {
    warning('Not enough levels to perform chi-sq test.')
}
于 2013-05-13T12:26:29.467 回答