※ 引述《mulala (MM)》之銘言:
: ※ 引述《imaltar (..)》之銘言:
: : 改自13051 socery大的程式
: : 假設資料是
: : data a;input id var1;
: : cards;
: : 1 1
: : 1 2
: : 1 3
: : 1 1
: : 1 2
: : 2 1
: : 2 2
: : 2 1
: : 2 2
: : 2 3
: : ;
: : run;
: : data a1;
: : set a;by id;n=1;
: : if first.id then do;
: : if n=1 then var2=1; retain var2;end;
: : else if var1=1 then var2=var2+1;
: : if last.id then ;drop n;
: : run;
: : 參考看看~~~
: 不行耶~我只能做到每遇到VAR=1時,VAR2會做累加的動作,
: 但是每遇到ID為另一個群組時,我就無法重新計算
: ID VAR1 VAR2
: 1 1 1
: 1 2 1
: 1 1 2
: 1 2 2
: 2 1 3
: 2 2 3
: 2 3 3
: 2 1 4
: 2 2 4
: 2 3 4
: 我不知道該如何以ID為群組做累計
我剛剛試出來了
DATA A;
SET AA;
BY ID;
LAG_ID=LAG(ID);
IF ID NE LAFG_ID THEN VAR2=1;
RETAIN VAR2;
ELSE IF VAR1=1 THEN VAR2=VAR2+1;
RUN;
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.135.120.233