作者roger12345 (神)
看板Statistics
标题Re: [问题] SAS分组找出同一栏位中的不同值
时间Mon May 4 02:41:17 2009
: 资料形态
: 案号 物品编号 所在县市
: A1 1 台北市
: A1 2 台北市
: A1 3 台北市
: A1 4 高雄市
: A2 ....
: A2 ....
: 请问各位先进
: 我的资料中正常情况是
: 若是同一案号下 所在县市应该都要是相同的
: 但若出现上述A1-4的情况 也就是要找出所在县市跟同案号其他笔不同的异常点
: 烦请有经验的先进给与建议 谢谢!!
请参考以下:
------------------------------------------------------------------------------
Data A;
INFILE CARDS FIRSTOBS=2;
INPUT Case $ Number Address $;
CARDS;
案号 物品编号 所在县市
A1 1 台北市
A1 2 台北市
A1 3 台北市
A1 4 高雄市
A2 1 高雄市
A2 2 高雄市
A2 3 高雄市
A2 4 台北市
;
PROC PRINT NOOBS DATA=A;
Data B;
SET A;
BY Case;
IF Address='台北市' THEN X='A1';
IF Address^='台北市' THEN X='A2';
IF Case=X;
PROC PRINT NOOBS DATA=B (DROP=X);
RUN;
------------------------------------------------------------------------------
也可依相对应的案号及所在县市来写判断句,IF Address='高雄市' THEN X='A2';
最後只 PRINT 出想要的资料即可。
希望对你有所帮助!!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.229.112.115
1F:推 tew:不知道 proc rank 能不能对文字编组 可以试试看 05/04 11:47
2F:推 qfchi:proc sort data=a nodupkey out=aa; by case address; run; 05/04 18:46
3F:→ qfchi:观察aa 这个资料集 案号若出现两次以上就是异常点 05/04 18:50
4F:推 fero:感谢各位,後来我是用两次proc sort解决问题 05/06 00:14
5F:→ fero:就是在q大的方法後,再一次proc sort by CASE然後找n>1的CASE 05/06 00:16