0

我想在 R 中创建两个向量,其中包含在给定条件下从均匀分布中随机抽取的值,例如,如果向量 A 中的数字小于 50,那么向量 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
  }
}
4

1 回答 1

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)
  }
}
于 2017-10-03T12:14:06.807 回答