我在数据框中有 1493313 个 p 值:
> head(dt)
pvals
1 0.0084956486
2 0.0012681537
3 0.0021218873
4 0.0001551133
5 0.0001894240
我正在尝试使用 qvalue 包来计算真阳性率。(TPR)
我正在这样做并收到错误:
library(qvalue)
pvals=dt$pvals
qval_obj=qvalue(pvals) #is false discovery rate
Error in smooth.spline(lambda, pi0, df = smooth.df) :
missing or infinite values in inputs are not allowed
如果这可行,我将通过以下方式计算 TPR:
pi1=1-qval_obj$pi0 #TPR
我那里没有任何 NA 或无限值,并且
> min(dt$pvals)
[1] 3.988883e-156
> max(dt$pvals)
[1] 0.8746981
> sapply(dt,class)
pvals
"numeric"
历史图(dt$pvals)
我不需要使用 qvalue 函数,如果您知道在 R 中计算 TPR 的任何其他方法,请告诉我。