Can we use descending function in data step ?

Reply
Occasional Contributor
Posts: 6

Can we use descending function in data step ?

 
Super User
Posts: 10,261

Re: Can we use descending function in data step ?

Posted in reply to ajay_mishra

AFAIK, there is no descending() function in SAS, but there is a descending option for the by statement: http://documentation.sas.com/?docsetId=lestmtsref&docsetTarget=p0yeyftk8ftuckn1o5qzy53284gz.htm&docs...

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
How to convert datasets to data steps
How to post code
Esteemed Advisor
Posts: 5,535

Re: Can we use descending function in data step ?

Posted in reply to ajay_mishra

If you mean to read a dataset in reverse order, backwards from the end, here is one way:

 

data ssalc;
set sashelp.class(obs=1) nobs=nobs;
do i = nobs to 1 by -1;
    set sashelp.class point=i;
    output;
    end;
drop i;
run;
PG
SAS Super FREQ
Posts: 502

Re: Can we use descending function in data step ?

[ Edited ]

Since NOBS=NOBS is taken care of at compile time, here is an alternative to @PGStats code.

 

data ssalc(drop=i);
   do i = nobs to 1 by -1;
      set sashelp.class point=i nobs=nobs;
      output;
   end;
   stop;
run;

 

Esteemed Advisor
Posts: 5,535

Re: Can we use descending function in data step ?

Posted in reply to WarrenKuhfeld

Test it! I did.

 

It will work because it will hit the obs=1 limit after the first iteration. It's just another way to avoid an infinite loop.

PG
SAS Super FREQ
Posts: 502

Re: Can we use descending function in data step ?

Sorry @PGStats, I stand corrected.  I will update that post.

Ask a Question
Discussion stats
  • 5 replies
  • 129 views
  • 0 likes
  • 4 in conversation