Разложить период госпитализации по месяцам
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | *(Вопрос) Мне требуется определить время госпитализации по месяцам, если даны * даты поступления и выписки. Примерно так: * Номер Поступил Выписан янв февр март и т.д. * 1 1/5/01 2/5/01 25 5 0 * 2 2/7/01 3/7/01 0 21 7 * 3 4/3/01 5/25/01 ? ? ? *(Ответ) Размещён в SPSSX-L 20.11.2001, автор: rlevesque@videotron.ca. * Примеч.: данные синтаксис не вполне универсальный. * Предполагается, что все даты находятся в пределах одного календарного года. DATA LIST LIST /id(F8) datein(ADATE) dateout(ADATE). BEGIN DATA 1 1/5/01 2/5/01 2 2/7/01 3/7/01 3 4/3/01 5/25/01 4 2/1/01 4/4/01 5 1/31/01 4/1/01 6 7/1/01 9/29/01 7 9/10/01 12/30/01 END DATA. LIST. VECTOR month(12F8). COMPUTE #oneday=24*60*60. LOOP mth=1 TO 12. COMPUTE beg1=MAX(datein , DATE.DMY(1,mth,XDATE.YEAR(datein))). COMPUTE end1=MIN(dateout + #oneday, DATE.DMY(1,mth+1,XDATE.YEAR(datein))). COMPUTE month(mth)=max(0, CTIME.DAYS(end1 - beg1)). END LOOP. EXECUTE. |
Related pages
...