Currently my output will display like this
Count Age
Jan 14 12 20-25
Jan 14 66 30-50
Jan 14 67 50+
Feb 14 2 20-25
Feb 14 105 30-50
Feb 14 61 50+
I want it to display
Age Jan 14 Feb 14
20-25 12 2
30-50 66 105
50+ 67 61
Any idea how to do this within my code?
Please try
proc sort data=have;
by age;
run;
proc transpose data = have out=want;
by age;
id date;
var count;
run;
Thanks,
Jag
proc tabulate data=have;
class month age;
var count;
table age,month=' '*count=' '*sum=' '*f=8.0;
run;
data have;
input date & monyy10. Count Age $;
format date monyy.;
cards;
Jan 14 12 20-25
Jan 14 66 30-50
Jan 14 67 50+
Feb 14 2 20-25
Feb 14 105 30-50
Feb 14 61 50+
;
run;
proc sort data=have(keep=date) out=temp nodupkey;by date;run;
data _null_;
set temp end=last;
if _n_ eq 1 then call execute('data want(drop=date); merge ');
call execute(cats('have(where=(date=',date,') rename=(count=',put(date,monyy.),'))'));
if last then call execute(';by age;run;');
run;
Xia Keshan
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.
Ready to level-up your skills? Choose your own adventure.