![](/img/trans.png)
[英]Vectorized solution for casting data.table to long format for each non-empty cell with column+row index as reference
[英]catch data that creates a table with only one non-empty row or column in R
我正在对一堆变量执行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
因此,列联表中有一行为空,只剩下一行。 如何测试此类变量并在循环中跳过它们?
您可以使用nlevels
来获取一个因子中的级别数。 例如,您可以执行以下操作:
if (nlevels(var1) > 1 & nlevels(var2) > 1) {
chisq.test(var1, var2)
} else {
warning('Not enough levels to perform chi-sq test.')
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.