作者loswin (loswin)
看板Statistics
標題[程式] SAS取LAG問題
時間Wed Feb 24 22:43:09 2010
company year x1 company year x1
A 1990 10 A 1990 .
A 1991 11 A 1991 10
A 1992 14 A 1992 11
A 1993 13 A 1993 14
A 1994 16 A 1994 13
A 1995 12 我想把資料變成 A 1995 16
------------------>
B 1990 4 B 1990 .
B 1991 8 B 1991 4
B 1992 13 B 1992 8
B 1993 18 B 1993 13
C 1990 6 C 1990 .
C 1991 10 C 1991 6
C 1992 14 C 1992 10
我要取LAG一期,然後是按公司分別取
[程式範例]:
data sas.yyy;
set sas.xxx;
by company;
Lag_x1 = LAG(x1);
run;
但是會變成
company year x1 Lag_x1
A 1990 10 .
A 1991 11 10
A 1992 14 11
A 1993 13 14
A 1994 16 13
A 1995 12 16
B 1990 4 12
B 1991 8 4
B 1992 13 8
B 1993 18 13
C 1990 6 18
C 1991 10 6
C 1992 14 10
有爬過文,好像有什麼 if first. 指令,可是看不太懂...
請板上大大幫忙,謝謝。
-----------------------------------------------------------------------------
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.243.66
※ 編輯: loswin 來自: 140.116.243.66 (02/24 22:58)
推 bugle:data sas.yyy; 02/24 22:57
→ bugle:set sas.xxx; 02/24 22:57
→ bugle:by company; 02/24 22:57
→ bugle:Lag_x1 = LAG(x1); 02/24 22:58
→ bugle:if first.company then Lag_x1 = .; 02/24 22:58
→ bugle:run; 02/24 22:58
→ loswin:好快的回文... 可以了耶 感謝!!!!!!! 02/24 23:05
→ loswin:想請問一下if first.company then Lag_x1 = .; 是什麼意思 02/24 23:11
→ wlsherica:如果遇到各公司的第一個,就讓Lag_x1這個新變項為"." 02/24 23:13
推 tew:要不要延伸思考 取5期落後期的語法要如何寫 02/25 11:46