全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2547 3
2011-04-22
重复标准:name,subject,age±2。
如果是严格的name,subjetc,age的话proc sort or proc sql 可以很容易地解决!
当age±2,该如何写呢,希望能像proc sort那样,能同时输出dupout 和out。
name        subject      score
david          chinese      89
david         english      90
david           english      90   
david          maths         78
david         maths         80     
david          maths           78      
jack           chinese        99  
jack             chinese       98   
jack            english        70
二维码

扫码加我 拉你入群

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

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

全部回复
2011-4-22 11:36:46
用hash吧,最终hash表是out
原表标记未入hash表的是dupout
二维码

扫码加我 拉你入群

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

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

2011-4-22 13:16:07
1# baojiwolong
data check;
input name $ subject $ score;
datalines;
david chinese 89
david english 90
david english 90
david maths 78
david maths 80
david maths 78
jack chinese 99
jack chinese 98
jack english 70
;
run;
proc transpose data=check out=b;
by name subject;
run;

data unique(drop=col2 col3 _name_) dup(drop=_name_);
set b;
if col2=. and col3=. then output unique;
else; if (col2 ne . or col3 ne .) and (abs(col2-col1) or abs(col3-col2)) lt 3 then output dup;
run;
二维码

扫码加我 拉你入群

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

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

2011-4-22 15:43:29
sas_user 发表于 2011-4-22 13:16
1# baojiwolong
data check;
input name $ subject $ score;
datalines;
david chinese 89
david english 90
david english 90
david maths 78
david maths 80
david maths 78
jack chinese 99
jack chinese 98
jack english 70
;
run;
proc transpose data=check out=b;
by name subject;
run;

data unique(drop=col2 col3 _name_) dup(drop=_name_);
set b;
if col2=. and col3=. then output unique;
else; if (col2 ne . or col3 ne .) and (abs(col2-col1) or abs(col3-col2)) lt 3 then output dup;
run;
谢谢关注,使用以下数据测试时,按标准应该没有重复记录,但dup却有!
david chinese 89
david english 90
david english 100
david maths 90
david maths 80
david maths 65
jack chinese 99
jack chinese 96
jack english 70
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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