2016-04-28 18 views
0

ランダムサンプリングでSASの変数の割合を変更して操作する方法はありますか?SASランダムサンプルの割合を変更する

私は1000人からなるテーブルを持っていると言います。 (500人の男性と500人の女性)

男女の層でランダムなサンプルを100枚持っていたいと思うなら、私は50人の男性と50人の女性を私の出力に持っていきます。

希望の性別の価値を持つ方法があるかどうかを知りたいですか?

ı70人の男性と30人の女性の100人のランダムサンプルがありますか?

答えて

0

一般的にはproc surveyselectが対象です。

しかし、迅速かつ汚いdatastepソリューションのために:

data in_data; 
    do i= 1 to 500; 
     sex = 'M'; output; 
     sex = 'F'; output; 
    end; 
run; 
data in_data; 
    set in_data; 
    rannum = ranuni(12345); 
run; 
proc sort data= in_data; by rannum; run; 
data sample_data; 
    set in_data; 
    retain count_m count_f 0; 
    if  sex = 'M' and count_m lt 70 then do; count_m + 1; output; end; 
    else if sex = 'F' and count_f lt 30 then do; count_f + 1; output; end; 
run;  
proc freq data= sample_data; 
    table sex; 
run; 
2

PROC SURVEYSELECTnまたはsamprateのデータセットの代わりに番号を使用して、これを行う方法です。

data strata_to_Sample; 
    length sex $1; 
    input sex $ _NSIZE_; 
datalines; 
M 70 
F 30 
;;;; 
run; 
proc sort data=strata_To_sample; 
    by sex; 
run; 

data to_sample; 
    set sashelp.class; 
    do _i = 1 to 1e5; 
    output; 
    end; 
run; 
proc sort data=to_Sample; 
    by sex; 
run; 

proc surveyselect data=to_sample n=strata_to_sample out=sample; 
    strata sex; 
run; 
関連する問題