我正在对数据框中的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
所以我的目标是改善我的一行代码以提取优势比和置信区间,你们知道怎么做吗?
答案 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)])