2017-10-03 6 views
0

벡터 A의 숫자가 < 인 경우와 같이 지정된 조건에서 주어진 균일 분포에서 무작위로 추출 된 값을 포함하는 두 개의 벡터를 R에 작성하려고합니다. 다음 벡터 B의 수는이 코드를 사용하지만 그것은 단지 내가 문제를 정확하게 이해한다면이 당신을 위해 작동합니다주어진 조건이 주어진 R에서 두 벡터의 난수 생성

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 
    } 
} 
+2

두 가지 방법 :'A <- runif (10, 0, 100)','B <- 100-A'. 또는 같은 A, 그 다음에'B <- runif (10, 0, 50) + ((A <50) * 50)'이됩니다. – lmo

+0

답장을 보내 주셔서 대단히 감사합니다. 어쩌면 나의 질문은 설명이 충분하지 않았을 것입니다. A = 12.03이고 B는 [50.00,100]이거나 그 반대가되어야합니다. A와 B의 합계가 달라서 100 – user4129939

+2

두 번째 제안이 그 상황에서 작동합니다. – lmo

답변

0

벡터의 첫 번째 요소에 적용되는 더 큰 50

보다해야 :

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) 
    } 
}