【问题标题】:Extracting all results from multiple Fisher test in R从 R 中的多个 Fisher 测试中提取所有结果
【发布时间】:2014-11-20 15:29:40
【问题描述】:

我正在对数据框中的 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 

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

【问题讨论】:

    标签: r


    【解决方案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))
    

    【讨论】:

      【解决方案2】:
      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)])
      

      【讨论】:

      • 这个答案被标记为删除,可能是因为它只包含没有任何解释的代码。我拒绝了这个标志,但您可能应该通过提供一些评论来改进您的答案。提问者遇到了什么问题?你是怎么解决的?
      猜你喜欢
      • 2019-01-04
      • 1970-01-01
      • 2019-04-09
      • 1970-01-01
      • 2021-10-07
      • 2012-11-27
      • 2022-01-04
      • 2015-12-25
      • 1970-01-01
      相关资源
      最近更新 更多