BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
skhan9
Fluorite | Level 6

Hi all,

I have over 50 tables in my SAS work library that look something like this:

YearGenderAgeFrequencyRate
2015Female0 to <18 Years2300010
2015Female18 to <65 Years160008
2015Female>=65 Years4500012
2015Male0 to <18 Years200009
2015Male18 to <65 Years150007
2015Male>=65 Years5000014
2016Female0 to <18 Years2400011
2016Female18 to <65 Years170008
2016Female>=65 Years4600013
2016Male0 to <18 Years2100010
2016Male18 to <65 Years160007
2016Male>=65 Years5100015
2017Female0 to <18 Years2500011
2017Female18 to <65 Years180008
2017Female>=65 Years4800013
2017Male0 to <18 Years2200010
2017Male18 to <65 Years170007
2017Male>=65 Years5300015

 

I have been exporting the dataset into excel and then manually formatting the tables to something like this: 

 Year
 201520152016201620172017
Gender and AgeFrequencyRateFrequencyRateFrequencyRate
Female      
0 to <18 yrs230001024000112500011
18 to <65 Years160008170008180008
>=65 years450001246000134800013
Male      
0 to <18 yrs20000921000102200010
18 to <65 Years150007160007170007
>=65 years500001451000155300015

 

I am wondering if there is a way to create customized tables in SAS so that I don't have to manually create these in Excel/Word to avoid errors and save time?

 

Thank you!

1 ACCEPTED SOLUTION

Accepted Solutions
Ksharp
Super User
data have;
infile datalines expandtabs truncover;
input Year	Gender $	Age &$40.	Frequency	Rate;
datalines;
2015	Female	0 to <18 Years	 23000	10
2015	Female	18 to <65 Years  	16000	8
2015	Female	>=65 Years	   45000	12
2015	Male	0 to <18 Years	  20000	9
2015	Male	18 to <65 Years  	15000	7
2015	Male	>=65 Years	  50000	14
2016	Female	0 to <18 Years  	24000	11
2016	Female	18 to <65 Years  	17000	8
2016	Female	>=65 Years	  46000	13
2016	Male	0 to <18 Years  	21000	10
2016	Male	18 to <65 Years  	16000	7
2016	Male	>=65 Years	  51000	15
2017	Female	0 to <18 Years	  25000	11
2017	Female	18 to <65 Years	  18000	8
2017	Female	>=65 Years	  48000	13
2017	Male	0 to <18 Years	  22000	10
2017	Male	18 to <65 Years	  17000	7
2017	Male	>=65 Years	  53000	15
;
proc report data=have nowd;
columns Gender Age	Year,(Frequency	Rate);
define gender/group noprint;
define age/group  'Gender and Age';
define year/across;
define Frequency/analysis sum;
define Rate/analysis sum;
compute before gender/style={just=l};
line gender $80.;
endcomp;
run;

Ksharp_0-1718328341153.png

 

View solution in original post

2 REPLIES 2
Ksharp
Super User
data have;
infile datalines expandtabs truncover;
input Year	Gender $	Age &$40.	Frequency	Rate;
datalines;
2015	Female	0 to <18 Years	 23000	10
2015	Female	18 to <65 Years  	16000	8
2015	Female	>=65 Years	   45000	12
2015	Male	0 to <18 Years	  20000	9
2015	Male	18 to <65 Years  	15000	7
2015	Male	>=65 Years	  50000	14
2016	Female	0 to <18 Years  	24000	11
2016	Female	18 to <65 Years  	17000	8
2016	Female	>=65 Years	  46000	13
2016	Male	0 to <18 Years  	21000	10
2016	Male	18 to <65 Years  	16000	7
2016	Male	>=65 Years	  51000	15
2017	Female	0 to <18 Years	  25000	11
2017	Female	18 to <65 Years	  18000	8
2017	Female	>=65 Years	  48000	13
2017	Male	0 to <18 Years	  22000	10
2017	Male	18 to <65 Years	  17000	7
2017	Male	>=65 Years	  53000	15
;
proc report data=have nowd;
columns Gender Age	Year,(Frequency	Rate);
define gender/group noprint;
define age/group  'Gender and Age';
define year/across;
define Frequency/analysis sum;
define Rate/analysis sum;
compute before gender/style={just=l};
line gender $80.;
endcomp;
run;

Ksharp_0-1718328341153.png

 

skhan9
Fluorite | Level 6

Thank you @Ksharp for the solution, it worked!