看板 Statistics 關於我們 聯絡資訊
※ 引述《c21221203 (kkii)》之銘言: : [程式問題]: : 小弟我想對以下資料,把ID當成不同組跑以下程式,但不知道如何把一個動作 : 依組別來進行。 : RETAIN flag ; : IF flag < SETTLE_PRICE then flag = SETTLE_PRICE ;RUN; : [問題敘述]: : dateDate exdae settle_price ID : 1/2 1/15 13 1 : 1/3 1/15 13 1 : 1/4 1/15 14 1 : 1/7 1/15 15 1 : 1/8 1/15 16 1 : 1/9 1/15 19 1 : 1/10 1/15 14 2 : 1/11 1/15 17 2 : 1/12 1/15 17 2 : 1/13 1/15 25 2 : 1/14 1/15 27 2 : 1/15 1/15 15 3 : 1/16 2/16 19 3 : 1/17 2/16 20 3 : 1/18 2/16 29 3 : 1/19 2/16 29 3 : 1/20 2/16 30 3 : 想得到以下結果 : dateDate exdae settle_price ID flag : 1/2 1/15 13 1 13 : 1/3 1/15 13 1 13 : 1/4 1/15 11 1 13 : 1/7 1/15 15 1 15 : 1/8 1/15 16 1 16 : 1/9 1/15 19 1 19 : 1/10 1/15 14 2 14 : 1/11 1/15 17 2 17 : 1/12 1/15 17 2 17 : 1/13 1/15 13 2 17 : 1/14 1/15 27 2 27 : 1/15 1/15 15 3 15 : 1/16 2/16 19 3 19 : 1/17 2/16 16 3 19 : 1/18 2/16 29 3 29 : 1/19 2/16 29 3 29 : 1/20 2/16 30 3 30 : [程式範例]:有點類似每個月再尋找過前高資料 : 目前用RETAIN , 程式會重頭直行到尾 不會以每個ID範圍來執行一次。 : 我想要 1追一次 2 追一次 3 追一次。 : ----------------------------------------------------------------------------- 動個小手腳就行了,每讀到一個新的id時讓flag清空 假設原始資料已經sort by id data new; retain flag; set old; by id; if first.id then flag=settle_price; else do; if flag < SETTLE_PRICE then flag = SETTLE_PRICE; end; run; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.243.5.2