[問題] sas取lag值

看板Statistics作者 (davidoff)時間17年前 (2009/02/23 21:21), 編輯推噓2(200)
留言2則, 1人參與, 最新討論串1/2 (看更多)
請問各位一個問題: 有下列的資料: 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
要先依照a1排序
02/23 21:24, 1F

02/23 21:30, , 2F
或者是你指令先後順序錯誤 完整的寫法才能除錯
02/23 21:30, 2F
※ 編輯: bestdavidoff 來自: 163.23.195.24 (02/23 21:43)
文章代碼(AID): #19egBexR (Statistics)
討論串 (同標題文章)
文章代碼(AID): #19egBexR (Statistics)