## Variation between two rows

Solved
Occasional Contributor
Posts: 11

# Variation between two rows

Hello everyone,

I would like to calculate the variation between two values between each row.

I have a data set like this:

Entreprise         Year      numb_employees

A                       1999             2

A                       2000             1

A                       2001              1

C                      1999               20

C                      2000               40

And I would like to calculate the variation in the number of employees per entreprise, i want this:

Entreprise         Year      numb_employees     variation_employees

A                       1999             2                                  .

A                       2000             1                                   -50%

A                       2001              1                                   .

C                      1999               20                                .

C                      2000               40                                 +50%

I know how to calculate the difference between each row but i can not find the way to calculate the variation.

I know how to calculate the variation between each row (see code below) but i do not know how to make the code start again for each entreprise:

``````data want;
set have;
by entreprise;
difference=dif(number_employees);
variation=difference/lag1(number_employees);
run; ``````

Thank you very much !

Eugénie

Accepted Solutions
Solution
‎09-26-2017 08:42 AM
Posts: 1,270

## Re: Variation between two rows

Hi,

Just need to add the highlighted syntax for the desired output.

data want;
set have;
by entreprise;
difference=dif(numb_employees);
if first.Entreprise then call missing(difference);
variation=difference/lag1(numb_employees);
format variation percent7.2;
run;

All Replies
Solution
‎09-26-2017 08:42 AM
Posts: 1,270

## Re: Variation between two rows

Hi,

Just need to add the highlighted syntax for the desired output.

data want;
set have;
by entreprise;
difference=dif(numb_employees);
if first.Entreprise then call missing(difference);
variation=difference/lag1(numb_employees);
format variation percent7.2;
run;

Occasional Contributor
Posts: 11

## Re: Variation between two rows

Thank you! it worked

☑ This topic is solved.