作者imaltar (..)
站内Statistics
标题Re: [程式] rank排名之後输出资料集
时间Thu May 27 18:00:52 2010
※ 引述《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