[英]Scatter plot in R
我通过在蒙特卡洛课上重新做一些作业来教自己R。 我在R中构建了一个RANDU生成器,并负责按顺序(u_i,u_ {i + 1},u_ {i + 2})中的所有三元组,其中0.5 <= u_ {i + 1} <= 0.51 ,绘制u_i与u_ {i + 2}。
我在上课时在MATLAB中做了以下操作,得到了:
这是我在Latex中编写的代码,请注意,存储在变量u中的数据只是0到1之间的统一随机数。
现在到我的问题,我在R中收到此错误
Error in if (0.5 <= u[i + 1] & u[i + 1] <= 0.51) { :
missing value where TRUE/FALSE needed
我不确定这里是什么问题,这是我的完整R代码:
n = 20002
x <- 1:n
x[1] = 1
for(i in 2:n){
x[i] = (65539*x[i-1]) %% 2^31
}
u <- 1:n
u[1] = 1/(2^31)
for(i in 2:n){
u[i] = x[i]/(2^31)
}
for(i in 1:length(u)){
if(0.5 <= u[i+1] & u[i+1] <= 0.51){
plot(u[i],u[i+2])
}
}
任何建议,不胜感激。
我认为这个问题是您在最后观察u
。 至于您的for
循环,您需要评估u[i+1]
。 尝试这个:
for(i in 1:length(u)-1){
if(0.5 <= u[i+1] & u[i+1] <= 0.51){
plot(u[i],u[i+2])
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.