全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2032 3
2011-11-17
我在用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出了问题,还是我自己的知识出了问题。难道这三组程序不等价么?非常疑惑,求解!
data.xls
大小:(57.5 KB)

 马上下载


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2011-11-17 15:16:31
另外,看合计项就能看出这三组的统计结果不一样的
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-11-18 09:38:58
继续继续!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-2-2 14:12:56
数据库存在缺失值的问题,
proc tabulate data=a;
class v013 sex;/*把012变量去掉,第二组的结果就跟freq 一样了*/
tables (v013='' all='合计'), (all='合计' sex='')* n='';
run;

另第三组
proc tabulate data=a;
class v012 v013 sex/missing;/*把缺失值算进去,结果就跟freq一样了*/
tables (v012='' all='合计'), (all='合计' sex='')* n='';
tables (v013='' all='合计'), (all='合计' sex='')* n='';
run;

算频数的时候,class 后若跟多个变量,只计算无缺失的记录
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群