在 R 中,如何一次性在数据帧上使用 p.adjust 的所有方法?
In R, how can I use all methods of p.adjust on a dataframe in one go?
目前我有一个 p 值的数据框。
l<- data.frame(p1 = c(0.01,0.5,0.6), p2= c(0.04,0.9,0.02))
并且我想应用 p.adjust
在每一列上独立于其他列使用所有方法。
以下是唯一可行的方法...但一次只能用于一列。
library(multcomp)
set.seed(2020)
l<- data.frame(p1 = c(0.01,0.5,0.6), p2= c(0.04,0.9,0.02))
p.adjust.M<- p.adjust.methods
sapply(p.adjust.M, function(meth) p.adjust( l[,1], meth))
`p.adjust.M<- p.adjust.methods`
下面的输出是针对第一列的。理想情况下,我想一次性将以下所有方法应用于所有列,并使 n 个数据帧对应于 n 列调整。
holm hochberg hommel bonferroni BH BY fdr none
[1,] 0.03 0.03 0.03 0.03 0.03 0.055 0.03 0.01
[2,] 1.00 0.60 0.60 1.00 0.60 1.000 0.60 0.50
[3,] 1.00 0.60 0.60 1.00 0.60 1.000 0.60 0.60
不幸的是,我将有很多专栏,所以这不是一个可行的方法。
提前致谢!
您可以将整个 sapply()
函数包装在一个 lapply()
函数中,其中数据(第一个参数)是您的数据集,如下所示:
lapply(l, function(L)sapply(p.adjust.M, function(meth) p.adjust( L, meth)))
# $p1
# holm hochberg hommel bonferroni BH BY fdr none
# [1,] 0.03 0.03 0.03 0.03 0.03 0.055 0.03 0.01
# [2,] 1.00 0.60 0.60 1.00 0.60 1.000 0.60 0.50
# [3,] 1.00 0.60 0.60 1.00 0.60 1.000 0.60 0.60
#
# $p2
# holm hochberg hommel bonferroni BH BY fdr none
# [1,] 0.08 0.08 0.08 0.12 0.06 0.11 0.06 0.04
# [2,] 0.90 0.90 0.90 1.00 0.90 1.00 0.90 0.90
# [3,] 0.06 0.06 0.06 0.06 0.06 0.11 0.06 0.02
目前我有一个 p 值的数据框。
l<- data.frame(p1 = c(0.01,0.5,0.6), p2= c(0.04,0.9,0.02))
并且我想应用 p.adjust
在每一列上独立于其他列使用所有方法。
以下是唯一可行的方法...但一次只能用于一列。
library(multcomp)
set.seed(2020)
l<- data.frame(p1 = c(0.01,0.5,0.6), p2= c(0.04,0.9,0.02))
p.adjust.M<- p.adjust.methods
sapply(p.adjust.M, function(meth) p.adjust( l[,1], meth))
`p.adjust.M<- p.adjust.methods`
下面的输出是针对第一列的。理想情况下,我想一次性将以下所有方法应用于所有列,并使 n 个数据帧对应于 n 列调整。
holm hochberg hommel bonferroni BH BY fdr none
[1,] 0.03 0.03 0.03 0.03 0.03 0.055 0.03 0.01
[2,] 1.00 0.60 0.60 1.00 0.60 1.000 0.60 0.50
[3,] 1.00 0.60 0.60 1.00 0.60 1.000 0.60 0.60
不幸的是,我将有很多专栏,所以这不是一个可行的方法。
提前致谢!
您可以将整个 sapply()
函数包装在一个 lapply()
函数中,其中数据(第一个参数)是您的数据集,如下所示:
lapply(l, function(L)sapply(p.adjust.M, function(meth) p.adjust( L, meth)))
# $p1
# holm hochberg hommel bonferroni BH BY fdr none
# [1,] 0.03 0.03 0.03 0.03 0.03 0.055 0.03 0.01
# [2,] 1.00 0.60 0.60 1.00 0.60 1.000 0.60 0.50
# [3,] 1.00 0.60 0.60 1.00 0.60 1.000 0.60 0.60
#
# $p2
# holm hochberg hommel bonferroni BH BY fdr none
# [1,] 0.08 0.08 0.08 0.12 0.06 0.11 0.06 0.04
# [2,] 0.90 0.90 0.90 1.00 0.90 1.00 0.90 0.90
# [3,] 0.06 0.06 0.06 0.06 0.06 0.11 0.06 0.02