ランダムサンプリングでSASの変数の割合を変更して操作する方法はありますか?SASランダムサンプルの割合を変更する
私は1000人からなるテーブルを持っていると言います。 (500人の男性と500人の女性)
男女の層でランダムなサンプルを100枚持っていたいと思うなら、私は50人の男性と50人の女性を私の出力に持っていきます。
希望の性別の価値を持つ方法があるかどうかを知りたいですか?
ı70人の男性と30人の女性の100人のランダムサンプルがありますか?
ランダムサンプリングでSASの変数の割合を変更して操作する方法はありますか?SASランダムサンプルの割合を変更する
私は1000人からなるテーブルを持っていると言います。 (500人の男性と500人の女性)
男女の層でランダムなサンプルを100枚持っていたいと思うなら、私は50人の男性と50人の女性を私の出力に持っていきます。
希望の性別の価値を持つ方法があるかどうかを知りたいですか?
ı70人の男性と30人の女性の100人のランダムサンプルがありますか?
一般的には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;
PROC SURVEYSELECT
はn
または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;