全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学
3730 6
2009-10-27
需要统计疾病的患病人数顺位,现有近千种疾病,怎样才能只显示患病人数最多的十种疾病?或者用其他什么过程能达到目的?谢谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2009-10-27 15:38:48
--------------------------------
二维码

扫码加我 拉你入群

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

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

2009-10-27 16:04:15
2# sushe1527

谢谢,不过您给的方法是已知各疾病的患病人数,现在各疾病的患病人数需要统计。即,已知的资料为:
data x;
input id  dis $;
cards;
1  a
2  b
3  a
4  c
5  d
6  b
7  a
8  c
9  c
10 a
;
run;

现只需要输出人数最多的前两种疾病及人数,即a 4;c 3.如何操作?
二维码

扫码加我 拉你入群

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

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

2009-10-27 16:33:12
data x;
input id  dis $;
cards;
1  a
2  b
3  a
4  c
5  d
6  b
7  a
8  c
9  c
10 a
;
run;
proc sql ;
create table b as select distinct(dis),count(dis) as count from x
group by dis  order  count desc;
create table final as select * from b(obs=2);quit;
二维码

扫码加我 拉你入群

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

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

2009-10-28 06:24:16
proc freq data = disease order=freq;
tables id freq;
run;
二维码

扫码加我 拉你入群

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

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

2009-10-28 10:04:04
4# sushe1527
非常管用!
data x;
input id  dis$;
cards;
1  a
2  b
3  a
4  c
5  d
6  b
7  a
8  c
9  c
10 a
;
run;
proc sql ;
   create table b as select distinct(dis),count(dis) as count from x
   group by dis  order  count desc;
proc tabulate data=b(obs=2);
     class dis;
     var count;
     table dis,count;
     keylabel sum='患病人数';
     label dis='疾病名称' count='疾病顺位';
run;
用tabulate勉强可以做成输出的格式。郁闷的是sas这么大的软件这点问题都不能直接解决。
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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