Good afternoon,
I have browsed through a lot of resources about this, but I can't seem to fin a solution:
I have the following code that gives me the table below: I can't find a way to add percentages and totals!! Does anybody know how to modify my code?
proc report data=full_data nowd ;
column Likert (medicalcondition, (agegroup));
define medicalcondition / across ' ';
define agegroup/ across ' ';
define Likert / group style(column)=Header;
rbreak after /ol summarize
style(summary)=Header{foreground=darkred};
run;
Table have:
Condition A | Condition B | |||
Likert | Parent | Child | Parent | Child |
agree | 6 | 9 | 3 | 7 |
neither agree nor disagree | 0 | 2 | . | 1 |
somewhat agree | 1 | 3 | 5 | 3 |
somewhat disagree | 1 | 0 | 0 | 0 |
strongly agree | 12 | 6 | 12 | 9 |
20 | 20 | 20 | 20 |
Table want:
Condition A | Condition B | Totals | ||||||||
Likert | Parent | % | Child | % | Parent | % | Child | % | Total | Total % |
agree | 6 | 30% | 9 | 45% | 3 | 15% | 7 | 35% | 25 | 31% |
neither agree nor disagree | 0 | 0% | 2 | 10% | 0 | 0% | 1 | 5% | 3 | 4% |
somewhat agree | 1 | 5% | 3 | 15% | 5 | 25% | 3 | 15% | 12 | 15% |
somewhat disagree | 1 | 5% | 0 | 0% | 0 | 0% | 0 | 0% | 1 | 1% |
strongly agree | 12 | 60% | 6 | 30% | 12 | 60% | 9 | 45% | 39 | 49% |
20 | 100% | 20 | 100% | 20 | 100% | 20 | 100% | 80 | 100% |
Look at the documentation regarding the statistics called PCTN. For example.
Look at the documentation regarding the statistics called PCTN. For example.
YES!
Thank you so much!
I didn't notice about the Total Column.
John,
proc tabulate would be simpler to such scenario .
data summ;
infile cards dsd;
input likert:$30. @;
do medicalCondition=1,2;
do agegroup=1,2;
input freq @;
output;
end;
end;
cards;
agree,6,9,3,7
neither agree nor disagree,0,2,0,1
somewhat agree,1,3,5,3
somewhat disagree,1,0,0,0
strongly agree,12,6,12,9
;;;;
run;
proc format;
value mcond 1='Cond A' 2='Cond B';
value agegr 1='Parent' 2='Child';
picture pct low-high='009.99%' (mult=100);
run;
options missing='0';
proc tabulate data=summ;
class likert medicalCondition agegroup;
freq freq ;
table likert all,medicalCondition=''*agegroup=''*freq=''*(n colpctn*format=pct8.2) all*(n colpctn*format=pct8.2);
format medicalcondition mcond. agegroup agegr.;
run;
Xia Keshan
The question was about PROC REPORT. The fact that you think tabulate is simpler is irrelevant.
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 the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.