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
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.