Help using Base SAS procedures

Which procedures we use if statement?

Reply
Frequent Contributor
Posts: 91

Which procedures we use if statement?

Which procedure we use if statement? As per my knowledge we don't use if statement in procedures? Why we don't use if statement in procedure?

Super User
Posts: 5,881

Re: Which procedures we use if statement?

Posted in reply to rajeshalwayswel
That question should be directed to Dr Jim, or seem like an early SW design decision.
My humble guess is that procedures generste results baded on prameters (options and local statements). IF on the other hand offers execution logic, and that is out of the scope for procedures.
Can you exemplify when IF in a PROC would be beneficial?
Data never sleeps
Super User
Posts: 10,258

Re: Which procedures we use if statement?

Posted in reply to rajeshalwayswel

Simple. Procedures are pre-fabricated modules that accept a limited set of parameters, the data step is undetermined and compiled.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
How to convert datasets to data steps
How to post code
Super User
Posts: 6,777

Re: Which procedures we use if statement?

Posted in reply to rajeshalwayswel

The very brief picture:  In a DATA step, IF deletes observations that have already been read in.  The deletion can be based on original values in the observation, or can be based on values calculated along the way by the DATA step.

 

However, the WHERE statement subsets observations before they get read into the DATA step.  By subsetting earlier, the WHERE statement (in many cases) is faster than the IF statement.  In addition, the WHERE statement is available for procedures as well as the DATA step.  Since procedures don't calculate new variables, and procedures have the WHERE statement available, there is no need for an IF statement there.

SAS Super FREQ
Posts: 502

Re: Which procedures we use if statement?

Posted in reply to Astounding

Actually, a number of procedures use IF statements.  They use a system called CMP that provides programming capabilities.  Here is one example, NLIN.  https://support.sas.com/documentation/cdl/en/statug/63962/HTML/default/viewer.htm#statug_nlin_sect01... I know some of the OR procs have complicated syntax too, so they probably do.  IML of course does.  Look at the documentation, it will tell you.  There might be a list of CMP procs somewhere.  I could more easily check if I were in my office.  Most procedures do not use IF statements.

Respected Advisor
Posts: 4,736

Re: Which procedures we use if statement?

Posted in reply to rajeshalwayswel

@rajeshalwayswel

To subset data many procedure allow for a WHERE statement (which is more like SQL syntax).

 

When working with SAS tables you can also use a WHERE statement as data set option to subset records:

Proc <some proc> data=source(where=(<condition>));
...
Ask a Question
Discussion stats
  • 5 replies
  • 209 views
  • 0 likes
  • 6 in conversation