楼主: tj0412ymy
1187 1

[原创博文] 分享一些Code,欢迎讨论和赐教! [推广有奖]

  • 2关注
  • 48粉丝

副教授

65%

还不是VIP/贵宾

-

威望
0
论坛币
11510 个
通用积分
12.6975
学术水平
72 点
热心指数
91 点
信用等级
64 点
经验
29292 点
帖子
545
精华
0
在线时间
1203 小时
注册时间
2009-3-10
最后登录
2024-2-15

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
请有高见的大虾出来讨论和赐教!

  1. data test;
  2. input id $ name $ 14. age;
  3. cards;
  4. 001 张三,李四,王五 25
  5. 002 赵六,甲乙         30
  6. ;
  7. run;
  8. data test1;
  9. retain id age;
  10. set test;
  11. do i=1 to countc(name,',')+1;
  12. name1=scan(name,i,',');
  13. output;
  14. end;
  15. drop i name;
  16. run;
复制代码
  1. data aa;
  2. input ID name $;
  3. cards;
  4. 1001 ABC
  5. 1002 ABCD
  6. 1003 ABCDE
  7. ;
  8. run;

  9. data bb;
  10. retain id;
  11. set aa;
  12. do i=1 to length(name);
  13. do j=i to length(name);
  14. name1=substr(name,i,j-i+1);
  15. output;
  16. end;
  17. end;
  18. drop i j name;
  19. run;


  20. proc sql;
  21. create table cc as
  22. select distinct a.id as id1, b.id as id2, count(a.name1=b.name1) as com
  23. from bb as a, bb as b
  24. where a.id<b.id and a.name1=b.name1
  25. group by a.id, b.id
  26. ;

  27. create table dd as
  28. select *,length(name) as len
  29. from aa
  30. ;
  31. create table ee as
  32. select a.id1, a.id2, b.len as len1, a.com
  33. from cc as a, dd as b
  34. where a.id1=b.id
  35. ;

  36. select a.id1, a.id2, a.len1, b.len as len2, a.com
  37. from ee as a, dd as b
  38. where a.id2=b.id
  39. ;
  40. quit;
复制代码
二维码

扫码加我 拉你入群

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

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

关键词:code ODE COD proc sql Distinct

顶楼主,我也需要

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-11-6 00:28