我是一个非常新手的R用户,我正在尝试运行一些代码,但我遇到了这个错误。
我得到了这个代码来控制错误发现率,首先使用Benjamini Hochberg方法,该方法对我的其他数据很有效:
BH1995<-function(pvals, alpha=0.05)
{
#
# Benjamini and Hochberg (1995) step-up procedure to control FDR
# pvals: sequence of all p-values
# alpha: nominal level, defaults to 0.05
#
M<-length(pvals)
a<-alpha*(1:M)/M
ord<-order(pvals)
psmall<- pvals[ord]<=a
if (sum(psmall)==0) reject<-NULL else {
mreject<-max((1:M)[psmall])
reject<-ord[1:mreject]
is.na(pvals)
}
reject
}
但当我尝试使用我的新数据(pvals(时:
BH1995mass<-length(BH1995(pvals,alpha=0.1))
BH1995mass
我得到了这个确切的错误:
如果(sum(psmall(==0(拒绝<-NULL其他{:缺少值,其中TRUE/FALSE需要
根据我在网上找到的,我认为我需要的是.na(pvals(语句?但由于我没有写这个代码(我也不完全理解R(,我不知道该把它放在哪里。谢谢你提前提供的帮助!!
在M <- length(pvals)
之前插入pvals <- pvals[!is.na(pvals)]
如何?