当表中只有一行时,R中的Chisq.test()出错

时间:2016-08-03 18:41:26

标签: r

我有计数数据,我想在R中运行chisq.test()。数据有两个变量,数据类型是二进制。但是,一个变量只有一个值“1”,另一个变量的值为“0”或“1”。所以,计数表就像这样

          0   1 
     1  67   221
data1=matrix(c(67,211),nrow=1) 
rownames(data1)<-(1)
colnames(data1)<-c(0,1)
data1
chisq.test(data1)

            Chi-squared test for given probabilities
    data:  data1
    X-squared = 74.59, df = 1, p-value < 2.2e-16

chisq.test(data1)$p.value
[1] 5.793804e-18

但是,如果我在第二行添加如下所示的计数零,并运行chisq.test(),我会得到不同的结果。

          0   1 
     1  67   221
     0   0    0
data2=matrix(c(67,0, 211, 0), nrow=2, ncol=2) 
rownames(data2)<-c(1,0)
colnames(data2)<-c(0,1)
data2
chisq.test(data2)

           Chi-squared test for given probabilities
    data:  data2
    X-squared = NaN, df = 1, p-value = NA

chisq.test(data2)$p.value
[1] NaN

'data1'和'data2'之间的数据表是相同的计数数据,但chisq.test()结果是不同的。第二个结果是正确的; X平方应为NaN,p值应为NA,因为无法计算X平方。

但是,在我的实际数据中,一个变量只有值'1'所以当我在R中导入数据txt文件并转换为计数表时,不生成第二行,如data2。因此,chisq.test()给出p值5.793804e-18。这是R bug吗?

Sanghoon

0 个答案:

没有答案