data have;
infile datalines;
input Teammate $ Area Branch $ Opened Inactive ;
return;
datalines;
Richardson 17500 Sims 52 2
Richardson 17522 Heigth 62 2
Shaw 17500 Sims 22 6
Richardson 17500 Sims 120 1
Shaw 1500 Hamphire 12 1
James 17500 Sims 50 40
Phelps 17500 Handley 12 6
;run;
Proc Report data = have NOWD Wrap style(summary)=Header;
column Teammate Area Branch Opened Inactive pct_inact ;
define Teammate /group style(column)=[cellwidth=100pt] "Teammate";
define Area / group style (column)=[cellwidth=100pt] "Center";
define Branch /group style(column)=[cellwidth=90pt];
define Opened / sum style(column)=[cellwidth=90pt] 'Total Opened For Period: ' ;
define Inactive / sum style(column)=[cellwidth=90pt] 'Total Inactive For Period: ' ;
define pct_inact /computed f=percent8.2 "%Inactive for preiod" style(column)=[cellwidth=90pt];
compute pct_inact;
pct_inact =_c5_ / _c4_; /*total% inactive*/
endcomp;
rbreak after / summarize style (summary)= Header;
compute after;
Teammate = 'Total';
endcomp;
run;
When running the code why am I NOT getting all of the Teammates(first column)?? The 4th and 6th columns are blank. The report is to be based on Teammate
When I run your code, I am not seeing the 4th and 6th columns as blank. They have numbers in them.
Teammate | Center | Branch | Total Opened For Period: | Total Inactive For Period: | %Inactive for preiod |
---|---|---|---|---|---|
James | 17500 | Sims | 50 | 40 | 80.00% |
Phelps | 17500 | Handley | 12 | 6 | 50.00% |
Richards | 17500 | Sims | 172 | 3 | 1.74% |
17522 | Heigth | 62 | 2 | 3.23% | |
Shaw | 1500 | Hamphire | 12 | 1 | 8.33% |
17500 | Sims | 22 | 6 | 27.27% | |
Total | 330 | 58 | 17.58% |
Exactly, my question was, why are we not seeing the name of the Teammate populated? What must I do with proc report to get the actual Teammate name to display??
Hi @Q1983
Here is a way to handle that (cf. compute bloc).
I have also added the %nrstr() function to mask the % in your label and avoid a warning in the log.
NB: all rows were not populated with the name of the Teammate because it is defined as a GROUP variable in the DEFINE statement.
This group allow to compute summary statistics so it is a better way to display the report
proc report data=have NOWD Wrap style(summary)=Header;
column Teammate Area Branch Opened Inactive pct_inact;
define Teammate /group style(column)=[cellwidth=100pt] "Teammate";
define Area / group style (column)=[cellwidth=100pt] "Center";
define Branch /group style(column)=[cellwidth=90pt];
define Opened / sum style(column)=[cellwidth=90pt] 'Total Opened For Period: ';
define Inactive / sum style(column)=[cellwidth=90pt] 'Total Inactive For Period: ';
define pct_inact /computed f=percent8.2 %nrstr("%Inactive for period") style(column)=[cellwidth=90pt];
rbreak after / summarize style (summary)=Header;
compute pct_inact;
pct_inact=_c5_ / _c4_; /*total% inactive*/
endcomp;
compute Teammate;
if Teammate NE ' ' then hold=Teammate ;
if Teammate EQ ' ' then Teammate=hold ;
endcomp;
compute after;
Teammate='Total';
endcomp;
run;
I have also added the %nrstr() function to mask the % in your label and avoid a warning in the log.
You could also just change the double-quotes to single quotes.
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.