table 中每一行的 R 卡方检验(3x2 偶然性 table)
R chi squared test (3x2 contingency table) for each row in a table
我有一个数据框,想对每一行(3x2 意外事件 table)执行卡方检验。
- 第 1 行 102 4998 105 3264 105 3636
- 第 2 行 210 4890 22 3347 20 3721
- 第 3 行 ...
因此,对于第一行,应对以下意外事件执行卡方检验 table;
- A组102 4998
- B 组 105 3264
- C组105 3636
我使用以下代码,但这并没有计算出正确的 p 值(所有 p 值都等于零,而当我自己计算卡方检验时情况并非如此):
table <- read.delim("dataframe.txt")
apply(table, 1, function(x) chisq.test(matrix(x,nrow=3)))
谁能帮我解决这个问题?
提前致谢
万尼斯
使用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)
我有一个数据框,想对每一行(3x2 意外事件 table)执行卡方检验。
- 第 1 行 102 4998 105 3264 105 3636
- 第 2 行 210 4890 22 3347 20 3721
- 第 3 行 ...
因此,对于第一行,应对以下意外事件执行卡方检验 table;
- A组102 4998
- B 组 105 3264
- C组105 3636
我使用以下代码,但这并没有计算出正确的 p 值(所有 p 值都等于零,而当我自己计算卡方检验时情况并非如此):
table <- read.delim("dataframe.txt")
apply(table, 1, function(x) chisq.test(matrix(x,nrow=3)))
谁能帮我解决这个问题?
提前致谢
万尼斯
使用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)