[程式] SAS 時間區間分組問題

看板Statistics作者時間9年前 (2016/10/21 19:32), 編輯推噓0(005)
留言5則, 1人參與, 最新討論串1/2 (看更多)
[程式] SAS [軟體程式類別]: SAS [程式問題]: 資料處理 [軟體熟悉度]: 新手逐漸熟悉中 [問題敘述]: 想要將同一ID的人,將其開藥時間區間,進行編組。 兩次開藥時間,則是將此次開始起使日,減上次開藥結束日; 如<=120天,視為同一組;>120天者,則是給予新的編號。 希望能夠呈現如Group此變項分組。 資料如下: ID 開藥起始日 開藥結束日 該次開藥天數 兩次開藥時間差距) Group (Drug_start) (Drug_end) (Drug_day) (Dif_Days) AAA 20080605 20080618 14 1 1 AAA 20100311 20100317 7 631 2 AAA 20100318 20100331 14 1 2 AAA 20110616 20110713 28 442 3 AAA 20111124 20111221 28 134 4 AAA 20121115 20121212 28 330 5 AAA 20121207 20130103 28 -5 5 AAA 20130110 20130206 28 7 5 AAA 20130418 20130515 28 71 5 AAA 20130530 20130626 28 15 5 AAA 20130706 20130802 28 10 5 AAA 20130727 20130823 28 -6 5 [程式範例]: DATA Final; SET data; by ID Drug_start if first.ID then group=1; if Dif_Days<=120 then group=1; else group+1; run; 這個程式,一直無法順利分組如grpup所示,請各位提供指點。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.72.12.140 ※ 文章網址: https://www.ptt.cc/bbs/Statistics/M.1477049574.A.ABE.html

10/24 13:29, , 1F
data final; set data;
10/24 13:29, 1F

10/24 13:30, , 2F
if first.ID then group=1;
10/24 13:30, 2F

10/24 13:30, , 3F
if Dif_Days>120 then group+1;
10/24 13:30, 3F

10/24 13:31, , 4F
by ID Drug_start Dif_Days;
10/24 13:31, 4F

10/24 13:32, , 5F
run; (這段之前要先sort id Drug_start Dif_Days)
10/24 13:32, 5F
文章代碼(AID): #1O2Vpcg- (Statistics)
文章代碼(AID): #1O2Vpcg- (Statistics)