[程式] SAS 請問如何讓欄位等於上一欄位的值

看板Statistics作者 (1234567)時間8年前 (2015/08/11 15:46), 編輯推噓2(207)
留言9則, 3人參與, 最新討論串1/1
[軟體程式類別]: SAS [程式問題]: 資料處理 [軟體熟悉度]: 低(1~3個月) [問題敘述]: 小弟原先想寫的語法為 Data xxx; Set xxx; If ID=lag(ID) and overconfidence=lag(overconfidence) then over confidence=1; Run; 白話來說,如果某人某年overconfidence欄位為1,那麼該人往後overconfidence欄位皆 為1 目前表格為 Year ID overconfidence 1991 A . 1992 A . 1993 A 1 1994 A . 1995 A . 1992 B . 1993 B 1 1994 B . 1995 B . 結果應像下表 Year ID overconfidence 1991 A 0 1992 A 0 1993 A 1 1994 A 1 1995 A 1 1992 B 0 1993 B 1 1994 B 1 1995 B 1 請各位協助,感謝 [程式範例]: 同上 ----------------------------------------------------------------------------- -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.119.120.6 ※ 文章網址: https://www.ptt.cc/bbs/Statistics/M.1439279211.A.1A6.html

08/11 16:20, , 1F
剛剛嘗試使用retain overconfidence .
08/11 16:20, 1F

08/11 16:21, , 2F
即使我加了by ID,結果可以達到等於上一筆值
08/11 16:21, 2F

08/11 16:22, , 3F
但無法依照每一ID來做,其他ID的overconfidence
08/11 16:22, 3F

08/11 16:22, , 4F
一開始就會全變成1
08/11 16:22, 4F

08/11 20:15, , 5F
lag函數必須放在if的條件外面使用,同樣的問題你兩個
08/11 20:15, 5F

08/11 20:16, , 6F
月前不是問過了嗎?
08/11 20:16, 6F

08/11 20:16, , 7F
如果我講的不清楚,看看你自己的文章 #1LWEPMbY 下面
08/11 20:16, 7F

08/11 20:16, , 8F
前輩的推文,應該講得很清楚
08/11 20:16, 8F

08/11 21:36, , 9F
retain
08/11 21:36, 9F
文章代碼(AID): #1LoQXh6c (Statistics)