引数の値を置換し、n個の値のうちk個のランダムな順列を返します。
カテゴリ: | 組み合わせ |
乱数シードが含まれる数値変数です。シードの詳細については、 シード値を参照してください。
ランダムな順列に含める値の数です。
同じ長さのすべての数値変数またはすべての文字変数を指定します。これら変数の K個の値がランダムに置換されます。
data _null_; array x x1-x5 (1 2 3 4 5); seed=1234567890123; do n=1 to 10; call ranperk(seed, 3, of x1-x5); put seed=@20 ' x= ' x1-x3; end; run;
seed=1332351321 x= 5 4 2 seed=829042065 x= 4 1 3 seed=767738639 x= 5 1 2 seed=1280236105 x= 3 2 5 seed=670350431 x= 4 3 5 seed=1956939964 x= 3 1 2 seed=353939815 x= 4 2 1 seed=1996660805 x= 3 4 5 seed=1835940555 x= 5 1 4 seed=910897519 x= 5 1 2
%macro test; %let x1=ant; %let x2=-.1234; %let x3=1e10; %let x4=hippopotamus; %let x5=zebra; %let k=3; %let seed=12345; %do j=1 %to 10; %syscall ranperk(seed, k, x1, x2, x3, x4, x5); %put j=&j &x1 &x2 &x3; %end; %mend; %test;
j=1 -0.1234 hippopotamus zebra j=2 hippopotamus -0.1234 10000000000 j=3 hippopotamus ant zebra j=4 -0.1234 zebra ant j=5 -0.1234 ant hippopotamus j=6 10000000000 hippopotamus ant j=7 10000000000 hippopotamus ant j=8 ant 10000000000 -0.1234 j=9 zebra -0.1234 10000000000 j=10 zebra hippopotamus 10000000000