计算Fisher';s数据帧行中的精确测试p值
我有一个数据框中1700个样本的列表,其中每一行代表每个助手从不同盒子中随机数取的彩色项目的数量。有两种可用颜色和两个人计算项目,因此可以轻松创建2x2列联表计算Fisher';s数据帧行中的精确测试p值,r,chi-squared,R,Chi Squared,我有一个数据框中1700个样本的列表,其中每一行代表每个助手从不同盒子中随机数取的彩色项目的数量。有两种可用颜色和两个人计算项目,因此可以轻松创建2x2列联表 df Box-ID 1_Red 1_Blue 2_Red 2_Blue 1 1075 918 29 26 2 903 1076 135 144 我想知道如何将每一行视为连续表(向量或矩阵),以便执行卡方检验(如Fisher检验或Barnard检验)并生成具有p值的第六
df
Box-ID 1_Red 1_Blue 2_Red 2_Blue
1 1075 918 29 26
2 903 1076 135 144
我想知道如何将每一行视为连续表(向量或矩阵),以便执行卡方检验(如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)
df$p_值我想你可以这样做
df$p_value <- apply(df,1,function(x) fisher.test(matrix(x[-1],nrow=2))$p.value)
df$p_值首先,R中还有?fisher.test
。您需要将代码放入apply
语句中,以便它作用于每一行,如apply(df[-1],1,函数(x)…)
其中x
是每一行中可以放入矩阵的4个数字。即使使用apply()或by(),2x2矩阵的生成仍然是一个问题。首先,R中也有?fisher.test
。您需要将代码放入apply
语句中,以便它作用于每一行,如apply(df[-1],1,函数(x)…)
其中x
是每一行中可以放入矩阵的4个数字。即使使用apply()或by(),2x2矩阵的生成仍然是一个问题。