我尝试多次复制一个函数,在每次迭代结束时,向一个向量添加一个值,这样在复制结束时,我就有了一个向量,其中的条目可以取其平均值。
这是我的代码
z <- vector()
n <- 1000
maxrep <- replicate(3, {
print(paste0("z0: ", z))
stop <- FALSE
plot(NULL, xlim=c(0.001,1000), ylim=c(0.001,4), ylab="unif value", xlab="n=1000")
y <- runif(1000, 0, theta)
for (i in 1:1000) {
thetamax <- max(y[1:i])
points(i, thetamax)
if (thetamax >= 2.9 & stop == FALSE) {
#print(paste0(i, ": ", thetamax))
num <- i
stop <- TRUE
}
}
z <- append(z, num)
print(paste0("z1: ", z))
})
我想给z加上一个值,但是每次replicate函数重复它自己的时候,由于某种原因,z又变成了一个空向量,加上的值就消失了。我该如何解决此问题?谢谢你,谢谢
1条答案
按热度按时间jk9hmnmh1#
正如我所说的,它是
maxrep
包含的值,而不是num
。变量num
只存在于调用replicate
中,而不存在于全局环境中。下面是代码的工作版本(为了清晰起见,我删除了绘图和打印):
maxrep
将包含值,例如[1] 11 27 60
。