表中每行的R chi平方测试(3x2列联表)

时间:2015-12-11 21:29:48

标签: r chi-squared contingency

我有一个数据框,并希望为每一行(3x2列联表)执行卡方检验。

  • row 1 102 4998 105 3264 105 3636
  • 第2行210 4890 22 3347 20 3721
  • 第3行......

因此,对于第一行,应对以下列联表执行卡方检验;

  • A组102 4998
  • B组32 3264
  • C 105 3636

我使用下面的代码,但是这不会计算正确的p值(所有p值都等于零,而当我自己计算卡方检验时则不是这样):

table <- read.delim("dataframe.txt")
apply(table, 1, function(x) chisq.test(matrix(x,nrow=3)))

有人可以帮我吗?

提前谢谢

Wannes

1 个答案:

答案 0 :(得分:1)

使用ncol代替nrow

apply(table, 1, function(x) chisq.test(matrix(x,ncol=3)))

目前,您正在构建第一行的矩阵:

102 3264
4998 105
105 3636

当R从向量构建矩阵时,它按列构建它们,所以第二个值进入第二行等等。

此外,如果您希望它仅报告p值,您可以执行以下操作:

apply(table, 1, function(x) chisq.test(matrix(x,ncol=3))$p.value)