2017-05-26 10 views
0

私を助けてくれてありがとう、ありがとう。SASの/ Thenステートメント

基本的には、0から1,15,000回の乱数を生成したいと思います。生成された値が0.25より小さい場合は、テーブルのその部分に0を表示したいと思います。 .25より大きい場合は、元の値を維持したいと思います。

私はアステリックの部分で何を使うべきですか?コードは、私が使用した形式で以下に貼り付けられます:

data rand_data; 
call streaminit(123); 

do i = 1 to 15000; 
    u = rand('Uniform'); 
    ***if u < .25 then do; 
    0 
    else*** 
    output; 
    end; 
    run; 
proc print data= rand_data; 
run; 
+0

あなたが統計者でない場合は、非常にランダムと見なされるかどうかわからないため、結果の配信について相談します。 RANDを使った新しいディストリビューションでさえ、このようなことをすると、明らかにランダム性が失われることがあります。あなたが[0.25,1]以上の分布を得ようとしているのであれば、より良い方法があります。 – Joe

答えて

1

あなたはその値を無視する代わりに場合は0

if u < 0.25 then u=0; 
output; 

で0.25未満の値を交換したいようですねが0.25未満の場合は、OUTPUT文を条件付きにします。

if u >= 0.25 then output; 

これにより、15,000件未満の観測結果が得られる可能性があります。

+0

ありがとう!私はまだ0を表示するにはアウトプットが必要でした。人生節約! – indiansrulz

関連する問題