我在用freq和tabulate分别做四格表,写的程序如下,我认为,以下三组程序所产生的结果应该是一样的:
第一组:
proc freq data=a;
tables v012*sex/nocol norow nopercent;
tables v013*sex/nocol norow nopercent;
run;
第二组:
proc tabulate data=a;
class v012 sex;
tables (v012='' all='合计'), (all='合计' sex='')* n='';
run;
proc tabulate data=a;
class v012 v013 sex;
tables (v013='' all='合计'), (all='合计' sex='')* n='';
run;
第三组:
proc tabulate data=a;
class v012 v013 sex;
tables (v012='' all='合计'), (all='合计' sex='')* n='';
tables (v013='' all='合计'), (all='合计' sex='')* n='';
run;
但是事实上,这三组得出的四格表中的数据都不一样。更为可笑的就是第二和第三组,我只是把两个tables语句合在一个tabulate过程中,但居然和分开为两个tabulate过程的结果不一样。
现附上数据。
请高手运算以下,看是不是我的sas出了问题,还是我自己的知识出了问题。难道这三组程序不等价么?非常疑惑,求解!