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
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;
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;
Thank you! it worked
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.