HI i am trying to write a code to calculate the below scenario ,
lets say i started investing with Rs1 , and i will double the money every day , i.e
1st day=Rs1
2nd day = Rs2
3rd day = Rs4
.
.
.
so on..
i want to know how many days it will take to make my investment in to Rs100000
i am trying the below code but some how not getting the logic to do so , please help...
DATA investthree;
DO until (value >= 100000);
value+1;
_value=value*2;
day + 1;
OUTPUT;
END;
RUN;
Your loop won't resolve. The below outputs what I think you are looking for.
data x;
value = 1;
days = 1;
do while (value lt 100000);
value = value*2;
put 'NOTE: ' days ': ' value;
days = days+1;
end;
output;
run;
That's a simple fomula:
endvalue = startvalue * 2 ** 100000;
Which will, of course, exceed any displayable value. Think of the wise guy demanding rice from the king. 1 grain on the first square of the chess-board, and double on every further square.
Now, if you want to find the iteration where the result exceeds 100000, you need this:
data want;
value = 1;
iteration = 1;
do until (value > 100000);
output;
value = value * 2;
iteration + 1;
end;
run;
So your question does not match your subject line. You appear to be trying to use a data step DO statement instead of a macro %DO statement. That will actually make it easier to do what you want since the DO statement is much more powerful than the %DO statement.
664 data investthree; 665 do day=1 by 1 until (value >= 100000); 666 if day=1 then value=1; 667 else value=value*2 ; 668 put day=z4. +1 value= comma10.; 669 output; 670 end; 671 run; day=0001 value=1 day=0002 value=2 day=0003 value=4 day=0004 value=8 day=0005 value=16 day=0006 value=32 day=0007 value=64 day=0008 value=128 day=0009 value=256 day=0010 value=512 day=0011 value=1,024 day=0012 value=2,048 day=0013 value=4,096 day=0014 value=8,192 day=0015 value=16,384 day=0016 value=32,768 day=0017 value=65,536 day=0018 value=131,072 NOTE: The data set WORK.INVESTTHREE has 18 observations and 2 variables.
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.