我正在尝试在R中对加权的Holm程序进行编码。我还想添加alpha并总计算使用alpha的数量。这个计数的最终总数(WHalphaTOTAL)是我需要能够在while循环之外使用的。我所知道的数据2数据帧是准确定义的。有问题的代码部分如下:
#WeightedHolms
WHalphaTOTAL=0
cat("Weighted Holms RESULTS\n")
m=1
newweight<-data2[m,2]
denomweightsum<-sum(data2[(m:n),2])
newalpha<-(newweight*ALPHA)/denomweightsum
newpval<-data2[m,4]
hys<-data2[m,1]
WHalphaTOTAL<-WHalphaTOTAL+newalpha
if(newpval<newalpha)
{
while((newpval<newalpha) & (m<=n))
{
print(WHalphaTOTAL)
cat("Reject Hypothesis", hys,"since P-value", newpval,"<", newalpha,"\n")
WHrej=WHrej+1
m<-m+1
newweight<-data2[m,2]
denomweightsum<-sum(data2[(m:n),2])
hys<-data2[m,1]
newalpha<-newweight*ALPHA/denomweightsum
newpval<-data2[m,4]
WHalphaTOTAL<-WHalphaTOTAL+newalpha
}
if(m-1==n)
{
cat("\n")
}
else
{
for(i in m:n)
{
cat("Fail to Reject Hypothesis", data2[i,1],"\n")
}
}
}
else
{
for(i in m:n)
{
cat("Fail to Reject Hypotheses", data2[i,1],"\n")
}
}
WHalphaTOTAL<-as.numeric(WHalphaTOTAL)
print(WHalphaTOTAL)
当我在while循环之外打印出WHalphaTOTAL时,它表示值为NA。但是,在while循环中,它可以正确地跟踪(并添加)总数。如果重要的话,这部分代码嵌套在for循环中(抱歉,我对R编码有点新意)。我需要WHalphaTOTAL的最终值,并且无法找到获得它的方法。我已经尝试返回值,但它打破了我需要继续运行的循环。我只需要能够打印并使用最终的WHalphaTOTAL值。非常感谢任何和所有帮助。