在给定指定条件下,在R中的两个向量中生成随机数

时间:2017-10-03 11:52:00

标签: r if-statement rep

我想在R中创建两个向量,这两个向量包含在给定指定条件下从均匀分布中随机抽取的值,例如,如果向量A中的数字是<然后,矢量B中的数字应大于50。

我使用此代码,但它仅应用于向量的第一个元素

nrows = 20
A = NaN*matrix(1, nrows, 1)
B = NaN*matrix(1, nrows, 1)

repeat {
  A[] = round(runif(nrows, 10, 100), digits =2) 
  B[] = round(runif(nrows, 10, 100), digits =2) 
  if(A > 50 & B > 50) {
    break
  }
}

1 个答案:

答案 0 :(得分:0)

如果我正确理解了问题,这应该对你有用:

nrows = 20
A = NaN * matrix(1, nrows, 1)
B = NaN * matrix(1, nrows, 1)

for (i in 1:nrows) {
  A[i] <- round(runif(1, 10, 100), digits = 2)
  if (A[i] < 50) {
    B[i] <- round(runif(1, 50, 100), digits = 2)
  } else {
    B[i] <- round(runif(1, 10, 100), digits = 2)
  }
}