Re: [程式] SAS有關交易資料比對

看板Statistics作者 (咖啡王子)時間15年前 (2010/10/23 12:55), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串2/3 (看更多)
題目很有趣 雖然你給的資料不完全 以客戶來說 應該會有兩三個客戶以上 這樣我撰寫 可以一步到位 不過 提供我的做法 我假設你的客戶最多交易100次 寫了以下的巨集 你可以更改多次一點 本巨集結果最好是看到log檔出現紅紅綠綠的警告字樣時 代表已經處理完成 (就是交易次數100次以內就夠了 ) 以下我增列幾筆資料 以驗證我的想法 我想應該符合你的邏輯想法 data a1; input c1 $ c2 $; datalines; A B D E E F B C D E C D ; run; data a1; set a1; order=_n_; /*假設你的交易是有順序性的 所以 D--->E 是單獨1筆 不會產生 B--C---D---E這樣的路徑 */ run; %macro a; proc datasets ; delete final; quit; %do i=2 %to 100; %let x=%eval(&i-1); %let y=%eval(&i+1); proc sql; create table a&i as select *, two.order as order2,two.c&i as c&y from a&x one, a&x two where one.c2=two.c1 and one.order<two.order; create table b as select * from a&x where order not in(select order from a&i) ; create table c as select c1,c&i as c2,&x as transaction ,order from b where order not in(select order2 from a&i) order by order; quit; proc append base=final data=c; quit; %end; proc sort data=final out=final(drop=order);by order; run; %mend; %a; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.216.240.212

10/24 20:03, , 1F
看不懂,我要來好好研究一下,很感謝原PO與tew大的解答
10/24 20:03, 1F

10/25 15:38, , 2F
學到了%eval的使用方法, 受教了
10/25 15:38, 2F
文章代碼(AID): #1CmcgtJv (Statistics)
文章代碼(AID): #1CmcgtJv (Statistics)