Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
而R中的循环-条件具有长度>;1且仅使用第一个元素_R - Fatal编程技术网

而R中的循环-条件具有长度>;1且仅使用第一个元素

而R中的循环-条件具有长度>;1且仅使用第一个元素,r,R,我需要用R中的Marsaglia-Bray算法生成正态随机变量。该算法如下所示: while(X>1) generate U1,U2~Unif[0,1] U1<-2*U1-1, U2<-2*U2-1 X<-U1^2+U2^2 end Y<-sqrt(-2*log(X)/X) Z1<-U1*Y Z2<-U2*Y return Z1,Z2 while(X>1) 生成U1,U2~Unif[0,1] U1 在循环中应考虑使用而: for(1:

我需要用R中的Marsaglia-Bray算法生成正态随机变量。该算法如下所示:

while(X>1)
   generate U1,U2~Unif[0,1]
   U1<-2*U1-1, U2<-2*U2-1
   X<-U1^2+U2^2
end
Y<-sqrt(-2*log(X)/X)
Z1<-U1*Y
Z2<-U2*Y
return Z1,Z2
while(X>1)
生成U1,U2~Unif[0,1]

U1

在循环中应考虑使用<代码>而<代码>:

for(1:100中的i)
{
而(x>1){…}

}

我需要得到的结果是向量x(x1)循环),但在这种情况下,
for(I in 1:100){while(I>1){…}
我只得到一个元素
x1){u1
循环的
是一个好主意,但是你需要在while循环中使用
x[I]
。(而且我真的不喜欢“你必须在循环中使用”这句话-
本身就是一个循环,大多数时候它不需要在另一个循环中。)@Gregor:你说得对,那句话并不总是正确的。编辑。你试过调试吗?
x <- numeric(100)
while(x>1){
      u1 <- runif(1)
      u2 <- runif(1)
      u1 <- 2*u1-1
      u2 <- 2*u2-1
      x <- u1^2+u2^2
}
Warning message:
In while (x > 1) { :
  the condition has length > 1 and only the first element will be used