[問題] sas取lag值
請問各位一個問題:
有下列的資料:
a1 a2
1101 1
1101 2
1101 3
1102 4
1102 5
1102 6
現在取lag值 不過會出現以下的情況
a1 a2 a3
1101 1 .
1101 2 1
1101 3 2
1102 4 3
1102 5 4
1102 6 5
1103 7 6
如果要讓sas依據a1判別 如果a1的代號不同則為miss值
例如下面結果:
a1 a2 a3
1101 1 .
1101 2 1
1101 3 2
1102 4 .
1102 5 4
1102 6 5
1103 7 .
剛剛有爬一下文章 先前有人碰過這個問題
我看推文 如果依照推文我應該寫成如下面的程式語法:
if first . a1 then a3=.;
不過跑不出來 請問一下我該如何解決?
附上程式寫法:
DATA BOOK2;
PROC SORT DATA=BOOK2;
BY A1 DESCENDING Y;
DATA BOOK3;
SET BOOK2;
Y2=LAG(F11);
IF first.A1 THEN Y3=.;
PROC PRINT DATA=BOOK3;
RUN;
上述的F11所代表的變數是要取的LAG值 令取完後的新的變項為Y2
IF的條件命令 是爬文後的想法所加進去的 不知道這樣寫對不對?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.23.195.24
推
02/23 21:24, , 1F
02/23 21:24, 1F
推
02/23 21:30, , 2F
02/23 21:30, 2F
※ 編輯: bestdavidoff 來自: 163.23.195.24 (02/23 21:43)
討論串 (同標題文章)