SAS可以向后进行sas过程观察

时间:2009-05-27 12:22:06

标签: sas

我知道Sas在处理时从数据集顶部的观察开始,然后进入下一个直到达到底部观察,但是有一种简单的方法可以使sas处理首先进行底部观察然后再进行处理到顶部?

3 个答案:

答案 0 :(得分:14)

您可以使用 nobs 指向来向后处理,而无需执行任何中间步骤。这是一个例子:

data backwards;
  do k= nobs to 1 by -1;
   set sashelp.class nobs = nobs point=k;
   output;
  end;
  stop;
run;
proc print data=sashelp.class;run;
proc print data=backwards;run;

请参阅this pdf的第2页,了解所有有趣的细节。

答案 1 :(得分:8)

您当然可以将数据更改为相反的顺序,然后自上而下处理。将一个变量添加到充当索引的数据集中。然后按该变量降序对数据集进行排序。

data work.myData ;
 set work.myData ;
 indx = _n_ ;
run ;

proc sort data=work.myData ;
 by descending indx ;
run ;

答案 2 :(得分:1)

您可以使用PROC SQL在单步中翻转观察顺序:

<button onclick="noti_click()">Noti</button>

此处的键是按单调()desc排序,其翻译为“按降序排列的观察编号”。

或者,您可以创建一个视图(而不是创建表),该视图将引用原始表,但以相反的观察编号顺序:

proc sql;
   create table work.cars as
   select *
   from sashelp.cars
   order by monotonic() desc;
quit;