Variation between two rows

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 11
Accepted Solution

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.

 

Could you help me please?

 

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
Trusted Advisor
Posts: 1,270

Re: Variation between two rows

Posted in reply to eugenia67

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;

View solution in original post


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

Re: Variation between two rows

Posted in reply to eugenia67

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.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 228 views
  • 2 likes
  • 2 in conversation