BookmarkSubscribeRSS Feed
deleted_user
Not applicable
Hi gyes

I have a code:
data &_output (drop = var1 var2);
set &syslast;
retain var1 var2;
if var1 ^= a then do...
...
...
...
run;


My question is: what value will have var1 and var2 after retain statement?

Thanks.
1 REPLY 1
deleted_user
Not applicable
As you haven't coded a literal after VAR1 / VAR2 in your RETAIN statement, they will be set to missing values. What happens next depends whether they appear in &SYSLAST. If they do, the effect of RETAIN is redundant and VAR1 / VAR2 will get refreshed with every observation read. If they don't appear in &SYSLAST then they will stay missing until referenced explicitly in the DATA step.

In your example, VAR1 / VAR2 could be missing for all time and VAR1 may never be equal to A - unless it appears in &SYSLAST.
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
  • 1 reply
  • 978 views
  • 0 likes
  • 1 in conversation