Re: [程式] rank排名之後輸出資料集
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):