Hi
I have used the sum function in a data step to add the value of a previous row to a current one. I was wondering if there is something similar for subtracting a value in a previous row from a value in the current data set? I did not see anything for 'subtract' and tried adding a negative value using the sum function but that did not work either:
data s1AgeCleanCare1;
set s1AgeCleanSort1;
by cnty_name startyear agecat4 exitMonthCategory;
if first.agecat4 then CumulativeNumber=OutOfHomeCare;
OutOfHomeCare + (-CumulativeNumber);
run;
Paul
Couldn't you just use sum(OutOfHomeCare-CumulativeNumber);
It is documented at: http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000245953.htm
The DIF (var) function, similar to LAG in concept, will give the difference from the previous record and the current or up to 99 records for a variable depending on DIF, DIF2, ..., DIF99. However you don't want to use it after IF statements as you will likely get unexpected results.
Couldn't you just use sum(OutOfHomeCare-CumulativeNumber);
It is documented at: http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000245953.htm
Yes, I did the sum() above and that worked for me, but I think the DIF would work as well. Thank you both.
Paul
Paul, Depends upon what you need. I didn't even see the part of your post concerning previous record. Since the sum function retains a value across records, it could be used to start with a value and then subtract a current record's value from it. The dif function would just get the difference between the current and previous record.
Thats all I need in this particular situation actually: current - previous.
Paul
and take a look at function range();
data _null_; a=4; b=1; x=range(a,b); put x=; run;
Ksharp
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.