Генерация случайных чисел в двух векторах в R с заданным условием

Я хочу создать два вектора в 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
  }
}

1 ответ

Это должно работать для вас, если я правильно понял проблему:

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)
  }
}
Другие вопросы по тегам