计算数据框行中的 Fisher 精确检验 p 值
Calculate Fisher's exact test p-value in dataframe rows
我在一个数据框中有一个包含 1700 个样本的列表,其中每一行代表每个助手从不同盒子中随机抽取的样本中计算出的彩色物品的数量。有两种可用的颜色和两个人在清点物品,因此这可以轻松创建 2x2 的意外事件 table。
df
Box-ID 1_Red 1_Blue 2_Red 2_Blue
1 1075 918 29 26
2 903 1076 135 144
我想知道如何将每一行视为一个连续事件 table(向量或矩阵)以执行卡方检验(如 Fisher 或 Barnard)并生成第六列与 p 值。
这是我目前试过的方法,但我不确定它是否正确
df$p-value = chisq.test(t(matrix(c(df[,1:4]), nrow=2)))$p.value
我想你可以这样做
df$p_value <- apply(df,1,function(x) fisher.test(matrix(x[-1],nrow=2))$p.value)
我在一个数据框中有一个包含 1700 个样本的列表,其中每一行代表每个助手从不同盒子中随机抽取的样本中计算出的彩色物品的数量。有两种可用的颜色和两个人在清点物品,因此这可以轻松创建 2x2 的意外事件 table。
df
Box-ID 1_Red 1_Blue 2_Red 2_Blue
1 1075 918 29 26
2 903 1076 135 144
我想知道如何将每一行视为一个连续事件 table(向量或矩阵)以执行卡方检验(如 Fisher 或 Barnard)并生成第六列与 p 值。 这是我目前试过的方法,但我不确定它是否正确
df$p-value = chisq.test(t(matrix(c(df[,1:4]), nrow=2)))$p.value
我想你可以这样做
df$p_value <- apply(df,1,function(x) fisher.test(matrix(x[-1],nrow=2))$p.value)