如何获得全局费舍尔分数?
How to obtain global Fisher score?
我想按元素获取以下类似列表数据的费舍尔分数。很抱歉向这个社区提出这个统计问题。但是,我的数据包含 3 个 GRanges 对象的重叠显着性得分列表,我想按元素获取其全局 fisher 得分。我怎样才能在 R 中得到这个?
这是我想要按元素获取其全局分数的数据:
[[1]]
NumericList of length 7
[[1]] 1e-22
[[2]] 1e-19
[[3]] 1e-18
[[4]] 1e-16
[[5]] 1e-24
[[6]] 1e-20
[[7]] 1e-15
[[2]]
NumericList of length 7
[[1]] 1e-24
[[2]] 1e-24
[[3]] 1e-20
[[4]] 1e-25
[[5]] 0.1
[[6]] 1e-19
[[7]] 1e-18
[[3]]
NumericList of length 7
[[1]] 1e-11
[[2]] 1e-11
[[3]] 1e-10
[[4]] numeric(0)
[[5]] numeric(0)
[[6]] 1e-15
[[7]] numeric(0)
可重现的例子是:
要用 0 替换 numeric(0),试试这个:
v3 <- lapply(v3, function(x) {
res <- ifelse(length(x)>0, x, 0)
})
data <- DataFrame(
v1=c(1e-22,1e-19,1e-18,1e-16,1e-24,1e-20, 1e-15),
v2=c(1e-24,1e-24,1e-20,1e-25,0.1,1e-19,1e-18),
v3=c(1e-11,1e-11,1e-10,numeric(0),numeric(0),1e-15,numeric(0)))
我想要的输出类似于(仅以元素为例):
global fisher score of `(1e-22, 1e-24, 1e-11)` = ?
global fisher score of `(1e-19, 1e-24, 1e-11)` = ?
...
global fisher score of `(1e-24, 1e-01, numeric(0))` = ?
我知道 fisher.test 基础包中的函数可以进行 fisher 精确测试。但它需要矩阵作为输入,而我不能将我的数据作为矩阵。我将我的数据放在我想要的元素操作格式中。
我想按元素获取全球渔民得分。我怎样才能在 R 中得到这个?或者,如果我使用 chisq.test,我如何通过元素明智地获取上述数据 table 的卡方统计量?如果有人能给我任何想法,我将不胜感激。
这是使用 Fisher 方法获取全局 Fisher 分数的解决方案:
library(metap)
comb.pval <- suppressWarnings(
res <- apply(data[,1:3],1, function(ro) sumlog(ro)$p)
)
干杯
朱拉特
我想按元素获取以下类似列表数据的费舍尔分数。很抱歉向这个社区提出这个统计问题。但是,我的数据包含 3 个 GRanges 对象的重叠显着性得分列表,我想按元素获取其全局 fisher 得分。我怎样才能在 R 中得到这个?
这是我想要按元素获取其全局分数的数据:
[[1]]
NumericList of length 7
[[1]] 1e-22
[[2]] 1e-19
[[3]] 1e-18
[[4]] 1e-16
[[5]] 1e-24
[[6]] 1e-20
[[7]] 1e-15
[[2]]
NumericList of length 7
[[1]] 1e-24
[[2]] 1e-24
[[3]] 1e-20
[[4]] 1e-25
[[5]] 0.1
[[6]] 1e-19
[[7]] 1e-18
[[3]]
NumericList of length 7
[[1]] 1e-11
[[2]] 1e-11
[[3]] 1e-10
[[4]] numeric(0)
[[5]] numeric(0)
[[6]] 1e-15
[[7]] numeric(0)
可重现的例子是:
要用 0 替换 numeric(0),试试这个:
v3 <- lapply(v3, function(x) {
res <- ifelse(length(x)>0, x, 0)
})
data <- DataFrame(
v1=c(1e-22,1e-19,1e-18,1e-16,1e-24,1e-20, 1e-15),
v2=c(1e-24,1e-24,1e-20,1e-25,0.1,1e-19,1e-18),
v3=c(1e-11,1e-11,1e-10,numeric(0),numeric(0),1e-15,numeric(0)))
我想要的输出类似于(仅以元素为例):
global fisher score of `(1e-22, 1e-24, 1e-11)` = ?
global fisher score of `(1e-19, 1e-24, 1e-11)` = ?
...
global fisher score of `(1e-24, 1e-01, numeric(0))` = ?
我知道 fisher.test 基础包中的函数可以进行 fisher 精确测试。但它需要矩阵作为输入,而我不能将我的数据作为矩阵。我将我的数据放在我想要的元素操作格式中。
我想按元素获取全球渔民得分。我怎样才能在 R 中得到这个?或者,如果我使用 chisq.test,我如何通过元素明智地获取上述数据 table 的卡方统计量?如果有人能给我任何想法,我将不胜感激。
这是使用 Fisher 方法获取全局 Fisher 分数的解决方案:
library(metap)
comb.pval <- suppressWarnings(
res <- apply(data[,1:3],1, function(ro) sumlog(ro)$p)
)
干杯
朱拉特