作者west1996 (焦了六年变脆了)
看板Statistics
标题Re: [程式] sas 抓出追前高的资料
时间Mon May 2 00:26:24 2011
※ 引述《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)
1F:→ c21221203:再次感谢WEST大跟A大的帮忙 我快哭了QQ 05/02 01:31