全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2617 6
2014-04-11
有个疾病监测的数据如下图:
模拟.png
现想做如下统计,凡7天内相同学校不同姓名的人发生3次及以上腹泻,则统计一次。 比如1月2日到7日这6天中,S1学校有AA、DD、和BB发生了腹泻(AA重复,只计算为1例),于是生成一条统计记录如下:
学校腹泻人次数统计日期
S1

3

2001-1-7

当日期到8日时,系统再次统计发现增加了一例EE,同时仍然满足7天内3例以上,于是进一步统计:
学校腹泻人次数统计日期
S1

3

2001-1-7

S1

4

2001-1-8

依次类推,直到把整个库统计完毕,(若新日期无新增病例,则不统计。)生成如下统计表:
学校腹泻人次数统计日期
S1

3

2001-1-7

S1

4

2001-1-8

………………
S2
S3
………………
请问,这个统计改如何写代码?  不知道我表达清楚与否,请各位赐教,不甚感激。
附上模拟数据:
模拟.xls
大小:(35.5 KB)

 马上下载




二维码

扫码加我 拉你入群

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

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

全部回复
2014-4-11 20:28:15
HASH表可以实现。
二维码

扫码加我 拉你入群

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

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

2014-4-12 12:24:16
复制代码
二维码

扫码加我 拉你入群

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

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

2014-4-12 19:34:42
yongyitian 发表于 2014-4-12 12:24
好想法,我研究一下,多谢指教。
二维码

扫码加我 拉你入群

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

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

2014-4-12 19:35:17
zhengbo8 发表于 2014-4-11 20:28
HASH表可以实现。
高人可以具体点么?给个代码学习一下呗
二维码

扫码加我 拉你入群

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

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

2014-4-17 20:50:49
新手用九牛二虎之力才写出来的。供你见笑!
proc sql;
        create table d2 as
                select *,min(date) as date1 format=yymmdd10.
                        from d1
                        where fuxie=1
                        group by school
                        order by date
        ;
quit;
proc sql;
        create table d3 as
                select *,count(name) as count
                        from d2
                        group by school,name
                ;
quit;
data d4;
        set d3;
        by school;
        day=intck("day",date1,date)+1;
run;
proc sql;
        create table d5 as
                select distinct school,name,fuxie,date,count
                        from d4
                        where day lt 7
                union
                select school,name,fuxie,date,count
                        from d4
                        where day >7
        ;
quit;
data d6;
        set d5;
        by school;
        if first.school then fuxiecishu=1;
                else fuxiecishu+1;
run;
data d7;
        set d6;
        where fuxiecishu>=3 ;
        keep school fuxiecishu date;
run;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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