Hi Experts,
I have a question on proc tabulate.the data look like
data test;
do grp=1 to 6;
do flg='Yes','No';
do sec='dsfsa', 'fdafa', 'afafa';
output;
end;
end;
end;
run;
proc tabulate data=test;
class grp flg sec;
table grp *FLG ,sec='section'
* (n='n' * f=10. COLPCTN='%' * f=7.2 )/ misstext='0' rts=40;
run;
my o/p:
ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ…ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ†
‚ ‚ section ‚
‚ ‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ…ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ…ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚ ‚ afafa ‚ dsfsa ‚ fdafa ‚
‚ ‡ƒƒƒƒƒƒƒƒƒƒ…ƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒ…ƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒ…ƒƒƒƒƒƒƒ‰
‚ ‚ n ‚ % ‚ n ‚ % ‚ n ‚ % ‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ…ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒ‰
‚grp ‚flg ‚ ‚ ‚ ‚ ‚ ‚ ‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‰ ‚ ‚ ‚ ‚ ‚ ‚
‚1 ‚No ‚ 1‚ 8.33‚ 1‚ 8.33‚ 1‚ 8.33‚
‚ ‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒ‰
‚ ‚Yes ‚ 1‚ 8.33‚ 1‚ 8.33‚ 1‚ 8.33‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒ‰
‚2 ‚No ‚ 1‚ 8.33‚ 1‚ 8.33‚ 1‚ 8.33‚
‚ ‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒ‰
‚ ‚Yes ‚ 1‚ 8.33‚ 1‚ 8.33‚ 1‚ 8.33‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒ‰
‚3 ‚No ‚ 1‚ 8.33‚ 1‚ 8.33‚ 1‚ 8.33‚
‚ ‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒ‰
‚ ‚Yes ‚ 1‚ 8.33‚ 1‚ 8.33‚ 1‚ 8.33‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒ‰
‚4 ‚No ‚ 1‚ 8.33‚ 1‚ 8.33‚ 1‚ 8.33‚
‚ ‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒ‰
‚ ‚Yes ‚ 1‚ 8.33‚ 1‚ 8.33‚ 1‚ 8.33‚
Šƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‹ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‹ƒƒƒƒƒƒƒƒƒƒ‹ƒƒƒƒƒƒƒ‹ƒƒƒƒƒƒƒƒƒƒ‹ƒƒƒƒƒƒƒ‹ƒƒƒƒƒƒƒƒƒƒ‹ƒƒƒƒƒƒƒŒ
but my desired o/p is
„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ…ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ†
‚ ‚ section ‚
‚ ‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ…ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ…ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚ ‚ afafa ‚ dsfsa ‚ fdafa ‚
‚ ‡ƒƒƒƒƒƒƒƒƒƒ…ƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒ…ƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒ…ƒƒƒƒƒƒƒ‰
‚ ‚ n ‚ % ‚ n ‚ % ‚ n ‚ % ‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ…ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒ‰
‚grp ‚flg ‚ ‚ ‚ ‚ ‚ ‚ ‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‰ ‚ ‚ ‚ ‚ ‚ ‚
‚1 ‚No ‚ 1‚ 50.00‚ 1‚ 50.00‚ 1‚ 50.00‚
‚ ‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒ‰
‚ ‚Yes ‚ 1‚ 50.00‚ 1‚ 50.00‚ 1‚ 50.00‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒ‰
‚2 ‚No ‚ 1‚ 50.00‚ 1‚ 50.00‚ 1‚ 50.00‚
‚ ‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒ‰
‚ ‚Yes ‚ 1‚ 50.00‚ 1‚ 50.00‚ 1‚ 50.00‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒ‰
‚3 ‚No ‚ 1‚ 50.00‚ 1‚ 50.00‚ 1‚ 50.00‚
‚ ‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒ‰
‚ ‚Yes ‚ 1‚ 50.00‚ 1‚ 50.00‚ 1‚ 50.00‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒ‰
‚4 ‚No ‚ 1‚ 50.00‚ 1‚ 50.00‚ 1‚ 50.00‚
‚ ‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒ‰
‚ ‚Yes ‚ 1‚ 50.00‚ 1‚ 50.00‚ 1‚ 50.00‚
Šƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‹ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‹ƒƒƒƒƒƒƒƒƒƒ‹ƒƒƒƒƒƒƒ‹ƒƒƒƒƒƒƒƒƒƒ‹ƒƒƒƒƒƒƒ‹ƒƒƒƒƒƒƒƒƒƒ‹ƒƒƒƒƒƒƒŒ
can i produce this kid of output by using proc report?
Thanks
Sam
Hi.
Your code is very close to accomplist what you wanted:
proc tabulate data=test;
class grp flg sec;
table grp *FLG ,sec='section'
* (n='n' * f=10. pctn<flg>='%' * f=7.2 )/ misstext='0' rts=40;
run;
Good luck!
Anca.
Hi.
Your code is very close to accomplist what you wanted:
proc tabulate data=test;
class grp flg sec;
table grp *FLG ,sec='section'
* (n='n' * f=10. pctn<flg>='%' * f=7.2 )/ misstext='0' rts=40;
run;
Good luck!
Anca.
Hi Anca,
Thank you !!! I Tried PCTN but i used wrong variable , i am applying on grp!!!! . Now i got what i want.
Is the same table can we generate using proc report. because i need to add another variable like sec(afafa,dsfsa ‚fdafa) , that varible name is mflag(Yes,NO). i am unable to do it in one table by using proc tabluate,
my final o/p with new added variable is shown like this
section mflag
grp flg afafa dsfsa fdafa Yes No
n % n % n % n % n %
1 No XX XX XX XX XX XX XX XX XX XX
Yes XX XX XX XX XX XX XX XX XX XX
I below is the code i am using but it throws a error in log:
proc tabulate data=subgrps;
class grp flg sec mflag;
table grp *flg ,sec=’Section’
* (n='n' * f=10. PCTN<FLG>='%' * f=7.2 ), mflag=’Mflag’
* (n='n' * f=10. PCTN<FLG>='%' * f=7.2 )/ misstext='0' rts=40;
run;
Thanks
Sam
Hi. glad it worked.
You need to remove the comma before the mflag = "Mflag" * (....);
Using this data:
data test;
do grp=1 to 4;
do flg='Yes','No';
do mflag = "Yes", "No";
do sec='dsfsa', 'fdafa', 'afafa';
output;
end;
end;
end;
end;
run;
proc tabulate data=test;
class grp flg sec mflag;
table grp *flg ,
sec="Section" * (n="n" * f=10. PCTN<FLG>="%" * f=7.2 )
mflag="Mflag" * (n="n" * f=10. PCTN<FLG>="%" * f=7.2 )
/ misstext="0" rts=40;
run;
Good luck.
Anca.
Thank you so much Anca. It worked!!!!! That is what exactly i want.
Regards
Sam.
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.