楼主: 陈苑利
1620 2

[原创博文] 怎样求出各个ID的重复个数? [推广有奖]

  • 1关注
  • 0粉丝

高中生

65%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0.0001
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
180 点
帖子
19
精华
0
在线时间
25 小时
注册时间
2011-10-31
最后登录
2017-9-14

楼主
陈苑利 发表于 2011-12-21 22:30:32 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
现有数据集
data a;
input id 3.;
cards;
101
101
102
103
104
105
103
104
109
108
;
run;
现在的问题是怎样用proc sql 求出各个不同id重复的个数是多少?好像挺简单的,不过自己还是没有弄出来,希望有高手帮忙呀!
二维码

扫码加我 拉你入群

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

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

关键词:proc sql cards Input card Data

沙发
shenliang_111 发表于 2011-12-21 22:59:10
  1. data a;
  2. input id 3.;
  3. cards;
  4. 101
  5. 101
  6. 102
  7. 103
  8. 104
  9. 105
  10. 103
  11. 104
  12. 109
  13. 108
  14. ;
  15. /*solution1-sql*/
  16. proc sql;
  17. create table result2 as
  18. select a.id, count(distinct b.n) as cnt
  19. from (select *,monotonic() as n from a)  a
  20. join (select *,monotonic() as n from a)  b
  21. on a.id=b.id and a.n le b.n
  22. group by a.id
  23. having a.n=min(a.n)
  24. order by a.id;
  25. quit;
  26. /*solution2-data step*/
  27. proc sort data=a;
  28. by id;
  29. run;
  30. data result;
  31. do _n_=1 by 1 until(last.id);
  32. set a;
  33. by id;
  34. end;
  35. cnt=_n_;
  36. run;
复制代码

藤椅
hopewell 发表于 2011-12-21 23:04:01
  1. proc sql;
  2.     create table result2 as
  3.         select a.id, count(id) as cnt
  4.             from a
  5.             group by id
  6.             order by id;
  7. quit;
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
shenliang_111 + 1 + 1 + 1 我很赞同---

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

观钓颇逾垂钓趣 种花何问看花谁

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 05:47