Tuesday, July 24, 2012

SAS proc transpose for 2 Columns

We have a data set with columns Name, Month, Day and Sale. And we require a variable like Sale in January Monday for against each name.



Input Data Set

Name
Month
Day
Sale
Geeta
Feb
Mon
19485
Geeta
Feb
Tue
27279
Geeta
Jan
Mon
27279
Geeta
Jan
Tue
7794
Ram
Feb
Mon
11691
Ram
Feb
Tue
31176
Ram
Jan
Mon
19485
Ram
Jan
Tue
27279
Seeta
Feb
Mon
23382
Seeta
Feb
Tue
19485
Seeta
Jan
Mon
31176
Seeta
Jan
Tue
31176

For desired result, first concatenate the  Month and Day Variables and then use proc transpose for output.

data
Work.Sale (drop = Month Day);
set Work.Sale;
Month_day = Month||'_'||Day;
run
;

proc transpose data = Work.Sale out = Work.Sale_trans Prefix= Sale_;
var sale;
id Month_day;
by Name;
run;

Output Data Set

Name
Sale_Feb_Mon
Sale_Feb_Tue
Sale_Jan_Mon
Sale_Jan_Tue
Geeta
19485
27279
27279
7794
Ram
11691
31176
19485
27279
Seeta
23382
19485
31176
31176

No comments:

Post a Comment