R 如何在我的代码中停止if循环的计数过程?
在R 如何在我的代码中停止if循环的计数过程?,r,if-statement,conditional-statements,R,If Statement,Conditional Statements,在for循环中的每个I第一次满足y0(while循环中规定的条件) 我曾尝试做一些的事情,如果(y0&z>2,这对我来说是有意义的,但结果没有意义,因为在我运行代码之后,count\ux大约是100(有意义)但是count_y大于1000,这是没有意义的,因为for loop仅来自1:1000 count_x <- 0 count_y <- 0 for (i in 1:1000){ x <- 25 y <- 25 t <- 0 while ((x
for循环
中的每个I
第一次满足y<0
条件后,我想停止y
的计数过程。这意味着,x
的计数过程将继续,只要x>0
(while循环中规定的条件)
我曾尝试做一些的事情,如果(y<0&(y-120*(16/81)*time+(z-2))>0&z>2
,这对我来说是有意义的,但结果没有意义,因为在我运行代码之后,count\ux
大约是100(有意义)但是count_y
大于1000,这是没有意义的,因为for loop
仅来自1:1000
count_x <- 0
count_y <- 0
for (i in 1:1000){
x <- 25
y <- 25
t <- 0
while ((x > 0 | y > 0) & t < 100){
time <- rexp(1,100)
u <- runif(1,0,1)
z <- 4/((1-u)^0.2) - 4
if (z < 2){
x <- x + 110*(65/81)*time - z
} else {
y <- y + 120*(16/81)*time - (z-2)
x <- x + 110*(65/81)*time - 2
}
t <- t + time
if (x < 0){
count_x <- count_x + 1
}
if (y < 0 & (y - 120*(16/81)*time + (z-2)) > 0 & z > 2){
count_y <- count_y + 1
}
}
}
count\u x我认为代码没有任何问题。至少在我看来,y计数器似乎是正确的。y变大的原因有两个。首先,即使外部for
循环只有1000,但内部while
循环在每次迭代中可能运行100次以上。其次,似乎y比x先降到0以下,因此x计数器更小
我修改了您的代码,添加了一个计数器,用于计算迭代次数,以及两个变量,分别存储x
和y
的值,第一次y
低于零时
count\ux我们将为x和y创建变量,当它们在每次迭代中都过零时,这些变量将被存储和跟踪。首先,我们将检查x或y是否为零,以及neg
是否属于NULL
类。如果是,那么这是第一个负数。我们将x_0
或y_0
存储为1。然后在计数时,我们检查x_0
或y_0
是否等于1,以及neg
是否为NULL
。然后我们将添加到计数器并记录第一个负片。此后,条件的计算结果为FALSE
count\x编辑了这个问题,忘了附上我的代码。很难理解为什么要使用for循环,因为在你的循环中没有使用i。for循环用于签入1000次,x
和y
将是多少次你是说y在i迭代的while循环中第一次过零时就应该被计数,之后就不应该被计数了吗?是的,这就是我的意思。但当第二次迭代开始时,它将再次开始计数。同样的事情也发生在x
上你好,洛弗先生,谢谢你的解决方案!谢谢!然而,我想我不太清楚我想在我的问题,所以我已经编辑了我的问题再次添加的例子,希望能得到一些建议从你再次!谢谢