Barite | Level 11

## Combining Iterative and Conditional DO Loops

Hi all SAS Users,

Today I did things with Do...Loop and there is one thing quite ambiguous to me.

In the last demo of lesson 6 of Programming 2, you have the code as below:

I am wondering why do not you set up the statement 'Saving=0;' right after the statement 'Month=0' as the previous demo:

I know the results from the code is right, but why do not we add one more statement for resetting Saving=0, because from my point of view, the Saving of one person will be retained and need to be set up back to zero for calculating for the next person.

Warm regards,

Thank you for your help, have a fabulous and productive day! I am a novice today, but someday when I accumulate enough knowledge, I can help others in my capacity.
1 ACCEPTED SOLUTION

Accepted Solutions
PROC Star

## Re: Combining Iterative and Conditional DO Loops

Most likely, the incoming data set contains SAVINGS. So the SET statement brings in a new value for each observation.
4 REPLIES 4
Super User

## Re: Combining Iterative and Conditional DO Loops

You are right, because the SUM statement will cause Savings to be implicitly RETAINed.

IMO the authors overlooked that.

PROC Star

## Re: Combining Iterative and Conditional DO Loops

Most likely, the incoming data set contains SAVINGS. So the SET statement brings in a new value for each observation.
SAS Employee

## Re: Combining Iterative and Conditional DO Loops

Astounding is correct.  The pg2.savings2 table has a savings column.  When the set statement executes, it overwrites the savings value in the program data vector (PDV).

PROC Star

## Re: Combining Iterative and Conditional DO Loops

I guess the particulars of the question could be justified if the incoming data is annual, with a variable named AMOUNT representing an a monthly amount to be added for each year.

Then savings is a new variable to be generated representing accrued value of deposits plus monthly interest.

--------------------------
The hash OUTPUT method will overwrite a SAS data set, but not append. That can be costly. Consider voting for Add a HASH object method which would append a hash object to an existing SAS data set

Would enabling PROC SORT to simultaneously output multiple datasets be useful? Then vote for
Allow PROC SORT to output multiple datasets

--------------------------
Discussion stats
• 4 replies
• 672 views
• 4 likes
• 5 in conversation