Генерация случайных чисел в двух векторах в 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)
}
}