从R中的多个Fisher检验中提取所有结果

时间:2014-11-20 15:29:40

标签: r

我正在对数据框中的1000行执行Fisher测试,它工作正常但我的脚本只提取p值,我想提取优势比和置信区间。

这是我的小脚本:

apply(mydata,1, function(x) fisher.test(matrix(x,nr=2))$p.value,$odds.ratio)

以下是一次一行执行的结果:

> fisher.test(try,  workspace=2e9)

    Fisher's Exact Test for Count Data

data:  try
p-value = 0.4144
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
  0.04686857 11.67245884
sample estimates:
odds ratio 
   1.92144 

所以我的目标是改善我的一行代码以提取优势比和置信区间,你们知道怎么做吗?

2 个答案:

答案 0 :(得分:1)

尝试

res <- t(apply(mydata,1, function(x) {x1 <-fisher.test(matrix(x, nr=2))
                        c(x1$p.value, x1$conf.int, x1$estimate)}))

数据

set.seed(24)
mydata <- as.data.frame(matrix(sample(1:100, 20*4, replace=TRUE), nrow=20))

答案 1 :(得分:0)

apply(mydata,1, function(x) fisher.test(matrix(x,nr=2))[1:3])

子集1是p值,子集2是置信区间,3是优势比

如果你想要p值和优势比,你可以使用

apply(mydata,1, function(x) fisher.test(matrix(x,nr=2))[c(1,3)])