## Subtraction function

Solved
Regular Contributor
Posts: 216

# Subtraction function

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

Accepted Solutions
Solution
‎11-26-2012 03:19 PM
PROC Star
Posts: 8,167

## Re: Subtraction function

Couldn't you just use sum(OutOfHomeCare-CumulativeNumber);

All Replies
Super User
Posts: 13,583

## Re: Subtraction function

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.

Solution
‎11-26-2012 03:19 PM
PROC Star
Posts: 8,167

## Re: Subtraction function

Couldn't you just use sum(OutOfHomeCare-CumulativeNumber);

Regular Contributor
Posts: 216

## Re: Subtraction function

Yes, I did the sum() above and that worked for me, but I think the DIF would work as well. Thank you both.

Paul

PROC Star
Posts: 8,167

## Re: Subtraction function

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.

Regular Contributor
Posts: 216

## Re: Subtraction function

Thats all I need in this particular situation actually: current - previous.

Paul

Super User
Posts: 10,787

## Re: Subtraction function

and take a look at function range();

```data _null_;
a=4; b=1;
x=range(a,b);
put x=;
run;

```

Ksharp

🔒 This topic is solved and locked.