重复过程直到满足条件

时间:2013-09-08 10:37:30

标签: r

我有以下代码:

   1. A=rnorm(100,mean=0, sd=30)
   2. B1=A+rnorm(100,mean=0,sd=10); B2=A+rnorm(100,mean=0,sd=30); B3=A+rnorm(100,mean=0,sd=50)
   3. d=data.frame(A, B1,B2,B3)
   4. c=cor(d)^2
   5. r=c[2,1]/c[4,1]

我想重复一行1-4。直到满足条件1.6 <=r <=3.5

即。我想生成A, B1, B2, B3,以便r满足1.6介于值3.5r之间的条件,如果1-4.的值超出{{1}}范围我想重复{{1}}直到它落在范围内。

1 个答案:

答案 0 :(得分:0)

while在这种情况下非常有用。

set.seed(1)
r<- 0
while(!(1.6 <=r & r <=3.5)){
  r <- r
  A=rnorm(100,mean=0, sd=30)
  B1=A+rnorm(100,mean=0,sd=10); B2=A+rnorm(100,mean=0,sd=30); B3=A+rnorm(100,mean=0,sd=50)
  d=data.frame(A, B1,B2,B3)
  c=cor(d)^2
  r=c[2,1]/c[4,1]
  print(r)
}
[1] 4.530864
[1] 2.600124

它只重复两次并找到满足条件的值2.600124然后停止,因为第一个值(4.530864)不属于该范围。