作者elia200019 (阿奶)
看板Statistics
标题Re: [问题] SAS 抽样
时间Wed Sep 4 17:05:24 2013
※ 引述《mickey1231 (国父)》之铭言:
: 请问大家
: 我要做Case control study
: 现在我有两群人,两群人的变数有的显着不同,有的没有显着不同
: 我想从这两群人中抽人出,让抽出来的两群人的某些变数都没有显着不同
: 请问有什麽程式可以帮我办到吗?
: 之前我要控制住性别、与年龄,我是先用proc freq看人数,再用proc surveyselect分层
: 抽样,但是要是要控制的变数一多,我就不知道该怎麽下手,才想询问看看有没有其他比
: 较快的方法?
: 谢谢大家!!
想借个标题问一下,小弟是统计新手,以前都把配对想得太简单。
我想如果只是要配对的话,用SAS的proc sql就可以解决,但是在该作法下,与case配对
的control会有"重复"的问题,据小弟目前的了解,势必要运用巨集,循环够多的次数,
直到将所有可能的control都配对完,才会使每一组配对好的control都不重复。搜寻网路
上的资讯,多半是使用巨集,无奈小弟是巨集苦手,太多不明的符号,所以想上来求救,
不知道能不能帮助我解决,以下是我写的简单配对语法,但是小弟的case有9000个,
control有150万,需要1:10配对,原本想用复制贴上这个语法100次,但是100次也没办法
全部配对完成呀,非常地伤脑筋。希望版上的大家能提供意见,助小弟脱离苦海,万分感
谢。
SAS语法如下:
libname still 'F:/stillbirth';
data still.case2;
set still.case;
rand_num=uniform(0);
run;
data still.control2;
set still.control;
rand_num=uniform(0);
run;
PROC SQL;
CREATE table still.match
as select
one.no as case_no,
two.no as control_no,
one.gest as case_gest,
two.gest as control_gest,
one.still as case_still,
two.still as control_still,
one.rand_num as rand_num
from still.case2 one, still.control2 two
where one.gest=two.gest;
proc sort data=still.match;
by control_no rand_num;
run;
* Remove duplicate control subjects;
proc sort data=still.match out=still.match2 nodupkey;
by control_no;
run;
proc sort data=still.match2;
by case_no;
run;
proc sort data=still.match2;
by case_no rand_num;
run;
data still.match3 still.not_enough;
set still.match2;
by case_no ;
retain num;
if first.case_no then num=1;
if num le 10 then do;
output still.match3;
num=num+1;
end;
if last.case_no then do;
if num le 10 then output still.not_enough;
end;
run;
proc sort data=still.match;
by case_no;
run;
proc sort data=still.match3;
by case_no;
run;
data still.match5;
merge still.match (in=t1) still.match3 (in=t2);
by case_no;
if t2 then delete;
run;
proc sort data=still.match5;
by control_no;
run;
proc sort data=still.match3;
by control_no;
run;
data still.match6;
merge still.match5 (in=t1) still.match3 (in=t2);
by control_no;
if t2 then delete;
run;
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.128.67.245
1F:推 imaltar:直接使用写好的macro 放入你资料的条件 09/04 17:10