作者faceoflove56 (1234567)
看板Statistics
標題[程式] SAS 請問如何讓欄位等於上一欄位的值
時間Tue Aug 11 15:46:48 2015
[軟體程式類別]:
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://webptt.com/m.aspx?n=bbs/Statistics/M.1439279211.A.1A6.html
1F:→ faceoflove56: 剛剛嘗試使用retain overconfidence . 08/11 16:20
2F:→ faceoflove56: 即使我加了by ID,結果可以達到等於上一筆值 08/11 16:21
3F:→ faceoflove56: 但無法依照每一ID來做,其他ID的overconfidence 08/11 16:22
4F:→ faceoflove56: 一開始就會全變成1 08/11 16:22
5F:推 realtemper: lag函數必須放在if的條件外面使用,同樣的問題你兩個 08/11 20:15
6F:→ realtemper: 月前不是問過了嗎? 08/11 20:16
7F:→ realtemper: 如果我講的不清楚,看看你自己的文章 #1LWEPMbY 下面 08/11 20:16
8F:→ realtemper: 前輩的推文,應該講得很清楚 08/11 20:16
9F:推 tew: retain 08/11 21:36