在R中从while循环中获取值时遇到问题

时间:2013-09-23 03:00:04

标签: r while-loop return-value

我正在尝试在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值。非常感谢任何和所有帮助。

0 个答案:

没有答案