给定计数,如何在 R 中使用列联表和 Fisher 检验

问题描述

我知道 table() 通过计数从数据中创建了一个包含两个分类变量的表。但我的问题是我已经得到了一张桌子。

Table

我应该使用 chisq.test() 和 fisher.test() 来测试花的颜色是否会影响颜色的存活率。如果我创建一个标题

color_tibble <- tibble(
White = c(143,130),Light = c(184,100),Dark = c(176,107) )                              

chisq.test(color_tibble$White)

这适用于对所有三种颜色进行 chisq 检验,但我无法使用 Fisher 检验,因为它不是实际的列联表,也没有两个分类变量可供比较。我没有使用 table() 创建表格的实际数据集/框架。

理想情况下,我想比较分类变量“颜色”与值白色/浅色/深色和“幸存者”值存活/死亡。

希望这对你有意义

解决方法

我认为 chisq.test 适用于矩阵。这样做

M <- as.matrix(color_tibble)
dimnames(M) <- list(survivorship = c("survived","died"),colors = c("White","Light","Dark"))
M

chisq.test(M)

    Pearson's Chi-squared test

data:  M
X-squared = 9.8681,df = 2,p-value = 0.007197

fisher.test(M)

    Fisher's Exact Test for Count Data

data:  M
p-value = 0.007558
alternative hypothesis: two.sided