R chisq.test()函数中两个单元格为零时的卡方检验

R chisq.test()函数中两个单元格为零时的卡方检验,r,chi-squared,R,Chi Squared,我对R中的chisq.test()进行了以下模拟测试 >dd-dl表(dd) 组 a 12 1 32 68 >chisq.试验(表(dd)) 给定概率的卡方检验 数据:表(dd) X平方=12.96,df=1,p值=0.0003182 >表(dl) 组 a 12 1 21 33 2 9 37 >chisq.试验(表(dl)) 皮尔逊卡方检验与耶茨连续性校正 数据:表(dl) X平方=3.5446,df=1,p值=0.05974 我打算比较第1组和第2组之间的差异;计算是在dl中正确完成的。然

我对R中的chisq.test()进行了以下模拟测试

>dd-dl表(dd)
组
a 12
1 32 68
>chisq.试验(表(dd))
给定概率的卡方检验
数据:表(dd)
X平方=12.96,df=1,p值=0.0003182
>表(dl)
组
a 12
1 21 33
2  9 37
>chisq.试验(表(dl))
皮尔逊卡方检验与耶茨连续性校正
数据:表(dl)
X平方=3.5446,df=1,p值=0.05974

我打算比较第1组和第2组之间的差异;计算是在dl中正确完成的。然而,在dd中,因为两组中的所有个体都包含100%的事件(所有个体都具有相同的a类);两组之间应该没有差异(p=1),但chisq.test()给出的p值为0.0003,这是用来比较比例差异的(32%对68%)。但我真正想比较的是组内的比例(100%对100%)。在这种情况下,如何正确使用chisq.test

将列转换为因子,并指定它们可以采用的级别。这样就可以知道有空单元格

dd[,1] <- factor(dd[,1], levels = 1:2)
dd[,2] <- factor(dd[,2], levels = 1:2)
这可能不完全是你想要的,但比测试每组的概率相同更正确

dd[,1] <- factor(dd[,1], levels = 1:2)
dd[,2] <- factor(dd[,2], levels = 1:2)
> chisq.test(table(dd))

        Pearson's Chi-squared test

data:  table(dd)
X-squared = NaN, df = 1, p-value = NA

Warning message:
In chisq.test(table(dd)) : Chi-squared approximation may be incorrect