Re: [程式] SAS資料計算
以下我做了一個假設
有兩個人 觀察到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
→
06/27 15:07, , 1F
06/27 15:07, 1F
→
06/27 15:23, , 2F
06/27 15:23, 2F
→
06/27 15:23, , 3F
06/27 15:23, 3F
→
06/27 16:07, , 4F
06/27 16:07, 4F
討論串 (同標題文章)