DATA Step, Macro, Functions and more

initializing variable in retain statement

Accepted Solution Solved
Reply
Super Contributor
Posts: 271
Accepted Solution

initializing variable in retain statement

 

When variables in retain statement are  need to initialize and when not? 


Accepted Solutions
Solution
‎07-24-2016 06:04 PM
Super User
Posts: 11,343

Re: initializing variable in retain statement

Posted in reply to SAS_inquisitive

If I need to USE the variable before it is assigned from some other calculation it should be initialized. One very minor example of that would be a counter variable that would need to start at 1000 (or some series range indicator) so that the first time I used Counter +1; the result was 1001 instead of 1.

 

If the only purpose were to save a value that was calculated or created in the current record for use on the next then initialization likely wouldn't be needed though you might need a Length statement for character variables (always a good idea).

View solution in original post


All Replies
Super User
Posts: 5,427

Re: initializing variable in retain statement

Posted in reply to SAS_inquisitive
That depends on the logic in your data step.
Data never sleeps
Super Contributor
Posts: 271

Re: initializing variable in retain statement

@LinusH .can you give an example?

Super User
Posts: 5,427

Re: initializing variable in retain statement

Posted in reply to SAS_inquisitive
I think your inquiry seems a bit theoretical. It's better if you have an issue that needs to be resolved concerning RETAIN.
Data never sleeps
Super Contributor
Posts: 271

Re: initializing variable in retain statement

Ok. I will try to come up with one.

Solution
‎07-24-2016 06:04 PM
Super User
Posts: 11,343

Re: initializing variable in retain statement

Posted in reply to SAS_inquisitive

If I need to USE the variable before it is assigned from some other calculation it should be initialized. One very minor example of that would be a counter variable that would need to start at 1000 (or some series range indicator) so that the first time I used Counter +1; the result was 1001 instead of 1.

 

If the only purpose were to save a value that was calculated or created in the current record for use on the next then initialization likely wouldn't be needed though you might need a Length statement for character variables (always a good idea).

☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 5 replies
  • 364 views
  • 0 likes
  • 3 in conversation