当其输出落在前3个输出的95%置信区间内时,如何中断重复循环?

时间:2018-06-22 08:55:39

标签: r loops if-statement matrix

我一直在尝试编写一个重复函数,该函数在输出平衡时会中断,这意味着它在经过特定的迭代次数后停止,此后函数返回的值落在最后返回的3个值的95%置信区间内通过该功能。这是示例数据:

a <- c(1, 5)
a.2 <- c(9, 18)
rbind(a, a.2)
b <- c(1, 0.5)
c <- c(1, 0)

这是我正在尝试的功能。值的每次计算都添加到具有两列的矩阵中。我正在使用最后三行为两个不同的值计算出95%的置信度。如果值落在此间隔内,则该函数应被破坏。

repeat {
abc <- sum(a * b) + c
for(alpha in abc[alpha]) {
if (abc[alpha] > 0) {
new.abc[alpha] <- (1-b)a - 0.2(b)
} else {
new.abc[alpha] <- (b-1)a - 0.2(b)   
}
}
all.abc <<- matrix(ncol = 2, dimnames = list(c(),c("abc.1", "abc.2")
all.abc <<- rbind(all.abc, new.abc)
s <- apply(all.abc[(length(abc[,1]) - 2):length(abc[,3]),], 2, sd)
n <- apply(all.abc[(length(abc[,1]) - 2):length(abc[,3]),], 2, length)
error <- qnorm(0.975)*s/sqrt(n)
for(j in length(all.abc[j,])) {
    for(i in length(all.abc[,i])) {
        if((all.abc[j,i] < all.abc[j,i] + error * all.abc[j,i]) &
          (all.abc[j,i] > all.abc[j,i] - error * all.abc[j,i])) {
                                   break    
                           } 
                }
        }
}

但是,这似乎不起作用。我想最后一行的值在函数执行期间不容易获得。我希望我已经清楚了。告诉我是否需要澄清。谢谢!

0 个答案:

没有答案