作者socery (keep going!)
看板Statistics
标题Re: [程式] sas资料除错
时间Wed Jun 9 23:03:15 2010
看不是很懂你的需求,同id但sex不一致的人抓出来
为什麽output是 aa f
aa f ====>这笔也要抓吗@_@
aa m
好吧,那就按照你output的需求
proc sort data=aa out=b1 nodupkey;by id sex;run;
data b2;set b1;by id sex;if first.id+last.id=2 then delete;run;
proc sort data=aa;by id sex;run;
data b3;merge aa(in=x) b2(in=y);by id sex;if x+y=2;run;
※ 引述《minna05 (take it easy)》之铭言:
: 首先非常感谢imaltar提供的语法
: 但我在执行大样本的时候发生了以下的问题:
: 除了原先我想除错的id会显示以外
: 当该id的frequency count 为11.22时
: 即使它的percent为100%仍会显示於output中
: 请问这有改善的方法吗?
: 另外,当该笔id的sex为遗漏値时,也会被挑出
: 有办法让他显示成
: aa m
: aa
: aa m
: 这样吗? 我再人工判断是否留下该id
: 谢谢大家帮忙^^
: ※ 引述《imaltar (..)》之铭言:
: ※ 引述《minna05 (take it easy)》之铭言:
: : [软体程式类别]:sas
: : [程式问题]:资料处理
: : [软体熟悉度]:低(1~3个月)
: : [问题叙述]:假设资料为
: : data a;
: : input id $ sex $;
: : cards;
: : aa f
: : aa f
: : aa m
: : bb f
: : cc m
: : cc m
: : ;
: : 我想要把同id但sex却不一致的人抓出来
: : 让output呈现 aa
: : 或是 aa f
: : aa f
: : aa m
: : 请问语法该怎麽写呢?
: : 谢谢^^
: proc sort data=a;by id;
: proc freq data=a noprint;table sex/out=b(where=(percent ne 100));by id;run;
: b就是id和sex不同的data
: 你也可以将b根据id串回a得到aa
: proc sort data=b;by id;
: data aa;merge a(in=a) b(in=b keep=id);by id;if a=b;run;
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.167.139.149
※ 编辑: socery 来自: 218.167.139.149 (06/09 23:06)
1F:推 minna05:感谢提供语法唷^^ 刚刚我尝试了另一个方法,再贴给大家参考 06/09 23:28