繁体   English   中英

R中的散点图

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM