## Taking First Differences

Solved
Frequent Contributor
Posts: 126

# Taking First Differences

To whom it may concern,

I have a column of data that looks like column 1 below. What kind of code do I need to run to get column 2; column 2 is column 1 staggered, so that I can eventually take the first difference between columns 1 and 2.

Any help would be appreciated.

Christos

Column 1      Column 2        First Difference

1                      [Blank]            1-[Blank]

2                         1                   2-1=1

3                         2                   3-2=1

4                         3                   4-3=1

5                         4                   5-4=1

6                         5                   6-5=1

Accepted Solutions
Solution
‎11-11-2012 04:33 PM
Super Contributor
Posts: 644

## Re: Taking First Differences

You need the LAG() function, or better still the DIF() function which will directly calculate the difference between successive observations.

diff1 = dif(x) ;

The first row will return a null value.

Richard in Oz

All Replies
Solution
‎11-11-2012 04:33 PM
Super Contributor
Posts: 644

## Re: Taking First Differences

You need the LAG() function, or better still the DIF() function which will directly calculate the difference between successive observations.

diff1 = dif(x) ;

The first row will return a null value.

Richard in Oz

PROC Star
Posts: 8,163

## Re: Taking First Differences

Richard should get the credit for the correct answer but, in case Richard was sufficiently clear:

data want;

input column1;

column2=lag(column1);

first_difference=dif(column1);

cards;

1

2

3

4

5

6

;

Frequent Contributor
Posts: 126