我正在尝试在 R 中编写加权 Holm 程序。我还想添加 alpha 并统计使用了多少 alpha。这个计数的最终总数(WHalphaTOTAL)是我需要能够在 while 循环之外使用的。我知道下面引用的 data2 数据框是准确定义的。有问题的代码部分如下:
#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 值。非常感谢任何和所有帮助。