我有以下用于随机遍历的生成器代码:
i = 1
t = 100
p = 0.5
max_walk = 1000
samples = rbinom(max_walk, 1, p)
samples[samples==0] = -1
walk = c(i, cumsum(samples))在我的例子中,i是第一步的值,t是最大值,0是最小值。所以,当这个值小于或等于零,或者大于或等于t时,我的遍历就必须停止。
有没有办法做到这一点?或者当相应的结果小于或等于零或大于或等于t时,累积和不会相加?
发布于 2020-10-25 22:18:36
您可以使用while()构建一个循环,但更简单的方法是按照编写的代码运行代码,然后确定停止点:
stop <- which(walk < 1 | walk > max_walk)
stop[1] # First stop
# [1] 13
walk[stop[1]] # Value at first stop
# [1] 0
plot(walk, type="l") # Plot entire walk
points(stop[1], walk[stop[1]], col="red")

https://stackoverflow.com/questions/64492715
复制相似问题