data have;
input (league team captain) ($);
datalines;
N A N1
N B N2
N C N3
S A N4
S B N5
S C N6
;
I would like to use PROC REPORT to generate the following report :
team
A B C
league
N N1 N2 N3
S N4 N5 N6
Hi, the "trick" is that REPORT will not like to use a character value under an ACROSS variable unless you give it something to "summarize". Try out the attached code. #1 will not work because PROC REPORT "wants" a statistic associated with CAPTAIN, but #2 will do what you want. After you see that #2 is working, you can use NOPRINT on the DEFINE statement to hide it on the report.
cynthia
ods html file='c:\temp\makedummyvar.html';
proc report data=have nowd;
title '1st try';
column league team,captain;
define league / group;
define team / across;
define captain / display;
run;
proc report data=have nowd;
title1 '2nd try with dummyvar';
column league team,captain dummyvar;
define league / group;
define team / across;
define captain / display;
define dummyvar / computed /* noprint */;
compute dummyvar;
dummyvar = 1;
endcomp;
run;
ods html close;
Hi, the "trick" is that REPORT will not like to use a character value under an ACROSS variable unless you give it something to "summarize". Try out the attached code. #1 will not work because PROC REPORT "wants" a statistic associated with CAPTAIN, but #2 will do what you want. After you see that #2 is working, you can use NOPRINT on the DEFINE statement to hide it on the report.
cynthia
ods html file='c:\temp\makedummyvar.html';
proc report data=have nowd;
title '1st try';
column league team,captain;
define league / group;
define team / across;
define captain / display;
run;
proc report data=have nowd;
title1 '2nd try with dummyvar';
column league team,captain dummyvar;
define league / group;
define team / across;
define captain / display;
define dummyvar / computed /* noprint */;
compute dummyvar;
dummyvar = 1;
endcomp;
run;
ods html close;
Well I'll be... It works! Thanks Cynthia. That's far from intuitive, at least for me.
PG
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
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.