BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
cellurl
Quartz | Level 8

Where online can i see an explaination of how multiple IF's are handled like below.

Thanks!

 

   data base(keep =  proposal_nbr tar_file tar_dt the_dt);
      merge base(in=ok1) prop_list(in=ok2);
         by proposal_nbr;
      if ok1;
      if the_dt eq . then the_dt=tar_dt;
      if the_dt lt date()-21;

 

The first one "gates" if an output is created, so if it misses, the last IF gets a chance to create an output? 

Is that the proper way to look at this?

 

Also, does it matter that the line "the_dt=tar_dt" isn't higher up in the code?? Does it only take-effect from that point downward?

1 ACCEPTED SOLUTION

Accepted Solutions
mohamed_zaki
Barite | Level 11

Yes.

You just need to read about  IF Statement, Subsetting, and understand what it is equivalent to.

View solution in original post

4 REPLIES 4
ballardw
Super User

The statement IF OK1; is a subsetting if, meaning that output will meet that requirement.

 

The Order of most statements in the code is very important. In your example the effect of

if the_dt eq . then the_dt=tar_dt;

would not matter as long as it appears between the MERGE (which apparently brings in the values for the variable the_dt) and

the if the_dt lt date()-21; where the newly assigned value would be used.

 

cellurl
Quartz | Level 8

so what would this do?

 

data out;

   set in;

if a;

if b;

if c;

 

Is this the same as "if a and b and c" then output?

mohamed_zaki
Barite | Level 11

Yes.

You just need to read about  IF Statement, Subsetting, and understand what it is equivalent to.

mohamed_zaki
Barite | Level 11

And regarding using "subsetting if" with "Merge" statment and how that work. Check  "ONE-TO-ONE MATCH-MERGE KEEPING SOME OBSERVATIONS " in this paper SAS® DATA Step Merge – A Powerful Tool

SAS Innovate 2025: Register Today!

 

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


Register now!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 4 replies
  • 1976 views
  • 0 likes
  • 3 in conversation