看板 Statistics 關於我們 聯絡資訊
以下我做了一個假設 有兩個人 觀察到4~5種情況 其中 第二種情況 會只出現一次 然後 在這樣的情境下 不用刻意針對 出現 第三種 第四種的情況做處理 只要能讓SAS辨認不同情況為何就可以了 不過你資料有幾筆 只要都是按照ID 事發順序排序 這個語法可以一步到位解決你所有的情況的計算 data a; input date date10. response; format date date10. ; cards; 09AUG07 1 23AUG07 1 06SEP07 2 20SEP07 2 05OCT07 3 16OCT07 3 30OCT07 3 29NOV07 1 01JAN08 2 10JAN08 3 19JAN08 3 30JAN08 4 10JUN08 4 ; run; data a; set a; retain n o 0; if response^=1 then n=n+1; else n=0; if response^=lag(response) then o=o+1; run; data a1 ; set a; if response^=1 then output; run; proc means noprint data=a1; var date; by o ; output out=a1 min=min max=max; run; data final; merge a a1;by o; days=max-min+1; if min=max then days=.; keep date response days; run; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.37.242.130
liton:n 和 o似乎留一個就可以了哩 06/27 15:07
tew:對 那是我在撰寫過程中 思考時多寫的 變項n是多餘的 06/27 15:23
tew:不過 保留也無傷大雅 XDD 06/27 15:23
liton:另外只有date9. 沒有date10.咧 是我的版本問題? 06/27 16:07