If I have a data with these variables:
product year sales_jan sales_feb sales_mar....sales_nov sales_dec
How can I transpose it to something like this?
product year month sales
Month is a number (1-12).Thank you.
I would use a DATA step, and create MONTH as a numeric variable:
data want;
set have;
array monsales {12} sales_jan sales_feb sales_mar sales_apr sales_may sales_jun
sales_jul sales_aug sales_sep sales_oct sales_nov sales_dec;
do month = 1 to 12;
sales = monsales{month};
output;
end;
drop sales_: ;
run;
Or replace steps 2-4 with a set of 13 IF/THEN statements, one for each month and one to catch errors.
I would use a DATA step, and create MONTH as a numeric variable:
data want;
set have;
array monsales {12} sales_jan sales_feb sales_mar sales_apr sales_may sales_jun
sales_jul sales_aug sales_sep sales_oct sales_nov sales_dec;
do month = 1 to 12;
sales = monsales{month};
output;
end;
drop sales_: ;
run;
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.