楼主: crazygoing
2391 6

如何根据日期迭代统计个案 [推广有奖]

  • 0关注
  • 47粉丝

教授

29%

还不是VIP/贵宾

-

威望
1
论坛币
4821 个
通用积分
21.8270
学术水平
165 点
热心指数
203 点
信用等级
146 点
经验
48691 点
帖子
441
精华
1
在线时间
1325 小时
注册时间
2007-11-9
最后登录
2024-4-11

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
有个疾病监测的数据如下图:
模拟.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)


二维码

扫码加我 拉你入群

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

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

关键词:模拟数据 如何写 不知道 统计表 如何 统计表 记录 姓名 学校

回帖推荐

yongyitian 发表于3楼  查看完整内容

沙发
zhengbo8 发表于 2014-4-11 20:28:15 |只看作者 |坛友微信交流群
HASH表可以实现。

使用道具

藤椅
yongyitian 发表于 2014-4-12 12:24:16 |只看作者 |坛友微信交流群
  1. data have;
  2. input school $ name $ fuxie date ddmmyy10.;
  3. format date yymmdd10.;
  4. datalines;
  5. S1 AA 1 02/01/2001
  6. S1 BB 0 02/01/2001
  7. S1 BB 0 02/01/2001
  8. S1 DD 1 05/01/2001
  9. S1 AA 1 06/01/2001
  10. S1 BB 1 07/01/2001
  11. S1 EE 1 08/01/2001
  12. S1 AA 0 09/01/2001
  13. S1 AA 0 10/01/2001
  14. S1 CC 1 11/01/2001
  15. S1 AA 0 12/01/2001
  16. S1 AA 0 13/01/2001
  17. S1 AA 0 14/01/2001
  18. S1 AA 0 14/01/2001
  19. S1 AA 0 14/01/2001
  20. S1 AA 0 14/01/2001
  21. S1 AA 0 18/01/2001
  22. S2 AA 0 19/01/2001
  23. S2 AA 0 20/01/2001
  24. S2 AA 0 21/01/2001
  25. S2 AA 0 22/01/2001
  26. S2 AA 0 23/01/2001
  27. S2 AA 0 24/01/2001
  28. S2 CC 1 25/01/2001
  29. S2 AA 1 26/01/2001
  30. S2 BB 1 27/01/2001
  31. S2 CC 1 28/01/2001
  32. S2 AA 0 29/01/2001
  33. S2 AA 0 30/01/2001
  34. S2 AA 0 31/01/2001
  35. S2 AA 0 01/02/2001
  36. S2 HH 1 02/02/2001
  37. S2 DD 1 03/02/2001
  38. S2 AA 0 04/02/2001
  39. S2 AA 0 05/02/2001
  40. S2 AA 0 06/02/2001
  41. S2 RR 1 07/02/2001
  42. S2 GG 1 08/02/2001
  43. ; run;

  44. proc sql;
  45.      create table moving_count as
  46.      select distinct a.school, count(distinct b.name) as count, a.date
  47.      from have as a, have as b
  48.      where a.school = b.school and (0<= intck('day', b.date, a.date) <= 6 ) and b.fuxie=1
  49.      group by a.school, a.date
  50.      order by a.school, a.date;
  51. quit;
复制代码

使用道具

板凳
crazygoing 发表于 2014-4-12 19:34:42 |只看作者 |坛友微信交流群
yongyitian 发表于 2014-4-12 12:24
好想法,我研究一下,多谢指教。

使用道具

报纸
crazygoing 发表于 2014-4-12 19:35:17 |只看作者 |坛友微信交流群
zhengbo8 发表于 2014-4-11 20:28
HASH表可以实现。
高人可以具体点么?给个代码学习一下呗

使用道具

地板
huangpengfei 发表于 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;

使用道具

7
crazygoing 发表于 2014-4-18 09:02:08 |只看作者 |坛友微信交流群
huangpengfei 发表于 2014-4-17 20:50
新手用九牛二虎之力才写出来的。供你见笑!
proc sql;
        create table d2 as
十分感谢。 我学习下

使用道具

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

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

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

GMT+8, 2024-5-1 17:12