2017-10-03 14 views
0

ベクトルAの番号が<の場合など、指定された条件で一様分布からランダムに引き出された値を含む2つのベクトルを作成します。その後、ベクトルBの数は、私はこのコードを使用しますが、私が正しく問題を理解する場合、これはあなたのために働く必要があるだけ指定された条件が与えられたRの2つのベクトルの乱数の生成

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

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

私の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) 
    } 
} 
関連する問題