Re: [程式] rank排名之後輸出資料集

看板Statistics作者 (..)時間15年前 (2010/05/27 18:00), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《wang1266 (莫娃兔^^)》之銘言: : [軟體程式類別]: : SAS : [程式問題]: : 資料處理 : [軟體熟悉度]: : 中(3個月到1年) : [問題敘述]: : 使用rank將資料集master裡面的變數s4作排名 : 排名後的變數名稱為order : 現在我需要將樣本資料分成3組 : 將資料分別輸出到資料集group1、group2、group3 : [程式範例]: : proc rank data=master ties=low descending groups=3; : var s4; : ranks order; : proc print data=group1; : proc print data=group2; : proc print data=group3; : run; : 若是使用 : proc rank data=master ties=low descending groups=3 out=group1; : var s4; : ranks order; : proc print data=group1; : run; : 則只能輸出全部的資料到group1 : 無法解決一次輸出到三個資料集的問題 我用macro執行,其中n表示groups的值,依照你的例子是3,你可以試試看行不行~~~ %macro rank(n=); proc rank data=master ties=low descending groups=&n. out=group; var s4; ranks order; run; %do i= 1 %to &n.; data group&i.;set group(where=(order=%eval(&i.-1))); proc print data=group&i.; run; %end; %mend; %rank(n=3); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.25.241.37
文章代碼(AID): #1B_aBMb0 (Statistics)
文章代碼(AID): #1B_aBMb0 (Statistics)