繁体   English   中英

捕获创建仅在R中具有一个非空行或列的表的数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM