计算给定小时内接受治疗的患者数量

  • 本文关键字:患者 受治疗 小时 计算 sas
  • 更新时间 :
  • 英文 :


我想按小时计算急诊室内的患者人数,我很难概念化有效的代码。

我有两个时间变量,"时间检查时间"one_answers"发布时间"。这些日期/时间变量显然是任意的,"发布时间"变量将在"签入时间变量"之后出现。

我希望在给定的一天的输出看起来像这样:

    Hour        Midnight   1am   2am   3am    4am.....
    # of Pts      34       56     89    23     29

因此,例如,凌晨1点,当前在ED中有56名患者 - 考虑了检查时间和释放时间。

我最初的想法是:1(圆形变量2(写一个代码代码,看起来像这样...

  data EDTimesl;
  set  EDDATA;
  if checkin = '1am' and release = '2am' then OneAMToTwoAM = 1;
  if checkin = '1am' and release = '3am' then OneAMToTwoAM = 1;
  if checkin = '1am' and release = '3am' then TwoAMToThreeAM = 1;
  ....
  run; 

但是,这给了我停顿,因为我觉得有一个更有效的方法!

预先感谢!

我在网上找到了一个代码,可以回答问题!请参阅下面:

data have (keep=admitdate disdate);
   /* generate some admission and discharge date time variables*/
   year=2015; /* for example all of the admits are in 2015*/
   format admitdate disdate datetime20.;
   do day= 1 to 20;
   do month=1 to 12;
     hour = floor(24*ranuni(4445));
     min  = floor(50*ranuni(1234));
     date = mdy(month,day,2015);
     admitdate=dhms(date,hour,min,0);
     /* random duration of stay*/
     duration = 60 + floor(3000*ranuni(7777));
     disdate = intnx('minute',admitdate,duration);
     output;
     end;
     end;
     run;
data occupancy;
  set have;
  format admitdate disdate datetime20.;
  Do Occupanthour = (dhms(datepart(admitdate),hour(admitdate),0,0)) to 
  dhms(datepart(disdate),hour(disdate),0,0) by 3600;
  HourOfDay = hour(OccupantHour);
  DayOfWeek = Weekday(datepart(OccupantHour));
  output;
  end;
  format OccupantHour datetime20.;
  run;
  Proc freq data=occupancy;
  Tables HourOfDay;
  run;
 proc tabulate data=occupancy;
  class DayOfWeek;
  class HourOfDay;
  tables HourOfDay,
      (DayOfWeek All)*n;
 run;

最新更新