直到R中的循环逻辑

时间:2015-08-14 02:42:45

标签: r while-loop repeat do-while

我有一个函数fk,我有另一个函数calc,我传递了2个值x和y。我想做以下操作,直到fk(x)* fk(y)< 0,我想将间隔加倍(y-x)。我将如何在R中完成此任务。我在逻辑上挣扎,任何帮助都会非常感激,

fk <- function(x) {
    return((x*x)-(3*x)+4)
}

calc <- function(x,y) {  
    g <- fk(x)*fk(y)

    until g < 0 do 
    double the interval (y-x)
}

2 个答案:

答案 0 :(得分:2)

你可以使用r format(round(txn_pd,2),scientific=FALSE)

来做到这一点
while

您的功能如下:

while (fk(x) * fk(y) < 0) {
    interval <- (y-x) * 2
}

答案 1 :(得分:1)

你想在这些方面使用某些东西:

calc <- function(x,y) {  

 while (fk(x) * fk(y) < 0) {
        interval <- (y-x) * 2
    }
}

正如我在评论中提到的,您不清楚如何调整calc <- function(x,y) { while (TRUE) { g <- fk(x)*fk(y) if (g < 0) { break } // otherwise double interval (y-x) } } x的值以便“加倍”间隔。一旦弄明白,就可以将所需的代码添加到循环中。