Solved
New Contributor
Posts: 3

# How to calculate the difference between two observation on different rows

Hi,

I have a table that shows an ID and two numeric variables, as in the example below:

 ID VAR1 VAR2 ID1 20 10 ID2 21 11 ID3 22 12

I have to add in this table an other column (e.g. TOT) that calculate the difference between var1 to the first row and var2 to the second and so on, as in the example below:

 ID VAR1 VAR2 TOT ID1 20 10 9 ID2 21 11 9 ID3 22 12 22

Could anyone help me?

Accepted Solutions
Solution
‎10-05-2017 06:08 AM
PROC Star
Posts: 169

## Re: How to calculate the difference between two observation on different rows

```data want;
merge
have
have(keep=var2 rename=(var2=next_var2) firstobs=2)
end=done;
if not done then
tot=var1-next_var2;
drop next_var2;
run;
```

All Replies
Solution
‎10-05-2017 06:08 AM
PROC Star
Posts: 169

## Re: How to calculate the difference between two observation on different rows

```data want;
merge
have
have(keep=var2 rename=(var2=next_var2) firstobs=2)
end=done;
if not done then
tot=var1-next_var2;
drop next_var2;
run;
```
Highlighted
New Contributor
Posts: 3

## Re: How to calculate the difference between two observation on different rows

Thank you so much!
☑ This topic is solved.