1.利用p.adjust函数
data<-c(0.05,0.90,0.89……)
p.adjust(data,method="fdr,n=length(data))
这里data大小应该给从小到大排列,否则校正出的p值有很多相同的值
解决这一问题的办法是利用R的软件包,即第二种方法
2.install.packages("fdrtool")
data<-c(0.05,0.90,0.89……)
fdr=fdrtool(data,statistic="pvalue")
fdr$qval # estimated Fdr values
fdr$lfdr#estimated local fdr
3.qvalue包
library(qvalue)
data(hedenfalk)
pvalues <- hedenfalk$p
qobj <- qvalue(p = pvalues)
qvalues <- qobj$qvalues #estimates of the q-values and
pi0 <- qobj$pi0 #the proportion of true null hypotheses π0
lfdr <- qobj$lfdr #the local false discovery rates
summary(qobj)
hist(qobj)
plot(qobj)