看板 Statistics 關於我們 聯絡資訊
※ 引述《c21221203 (kkii)》之銘言: : [軟體程式類別]: : sas : [程式問題]: : 資料 : [軟體熟悉度]: : 低(1~3個月) : [問題敘述]: : 假設我的資料如下,只要未來的資料,有比之前最高的數字大就抓出來,若過程中下降又 : 上升但是還是沒有創新高,就不理他直到下一筆創新高出現,再把新高抓出來。 : 原始資料 想要的型態 : number : 7 7 : 6 9 : 12 12 : 11 16 : 11 21 : 10 24 : 11 40 : 12 : 16 : 21 : 24 : 23 : 20 : 40 : [程式範例]: : 目前只想到用lag一格去互減,然後把有>0留下,之後再取lag再減一次,但這樣 : 也不知道要做多少次,雖然知道做無限次,最後會得到我想要的型態,但若真的要跑無限 : 次請問要如何跑,還是有更快方法。 : DATA id; : SET xxx; : LAGNUMBER1=LAG0(NUMBER); : LAGNUMBER2=LAG2(NUMBER); : SETTLED=LAG_NUMBER1-LAG_NUMBER2; : IF SETTLED <=0 THEN DELETE; : RUN; : 就這樣一值手動重複,會有答案但是手會斷掉QQ。 請高手幫忙! : ----------------------------------------------------------------------------- data new; retain flag; set old; if _n_=1 then do; flag=number; output; end; else if number gt flag then do; flag=number; output; end; drop flag; run; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.243.0.65 ※ 編輯: west1996 來自: 111.243.0.65 (05/02 00:39)
c21221203:再次感謝WEST大跟A大的幫忙 我快哭了QQ 05/02 01:31