我有一个 p 值列表,我想为FDR的多重比较计算调整 p 值。在 R 中,我可以使用:
pval <- read.csv("my_file.txt",header=F,sep="\t")
pval <- pval[,1]
FDR <- p.adjust(pval, method= "BH")
print(length(pval[FDR<0.1]))
write.table(cbind(pval, FDR),"pval_FDR.txt",row.names=F,sep="\t",quote=F )
如何在 Python 中实现此代码?在 Google 的帮助下,这是我在 Python 中的成功尝试:
pvalue_list [2.26717873145e-10, 1.36209234286e-11 , 0.684342083821...] # my pvalues
pvalue_lst = [v.r['p.value'] for v in pvalue_list]
p_adjust = R.r['p.adjust'](R.FloatVector(pvalue_lst),method='BH')
for v in p_adjust:
print v
上面的代码会抛出一个AttributeError: 'float' object has no attribute 'r'
错误。谁能帮忙指出我的问题?在此先感谢您的帮助!