→ c21221203:再次感謝WEST大跟A大的幫忙 我快哭了QQ 05/02 01:31
※ 引述《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)