【发布时间】:2021-08-17 18:31:31
【问题描述】:
我无法使用行百分比获得 ALL 行。我希望第一行给出列总计的总和和百分比。因此,ALL 边界下的百分比应显示 1861 * 100/5049=36.8%,而在希望下显示 1399 * 100/5049=27.7%。目前它显示 100%,我需要更改它。
proc tabulate data=sashelp.heart;* format=8.2;
class chol_status smoking_status sex;
table (all smoking_status sex),
(all chol_status)*(n*f=8. colpctn) ;
run;
输出是
All Cholesterol Status
Borderline Desirable High
N ColPctN N ColPctN N ColPctN N ColPctN
All 5049 100.00 1861 100.00 1399 100.00 1789 100.00 <- change the cholesterol % to denominator 5049
Smoking Status
Heavy (16-25) 1029 20.38 383 20.58 285 20.37 361 20.18
Light (1-5) 563 11.15 192 10.32 174 12.44 197 11.01
Moderate (6-15) 563 11.15 217 11.66 170 12.15 176 9.84
Non-smoker 2436 48.25 886 47.61 655 46.82 895 50.03
Very Heavy (> 25) 458 9.07 183 9.83 115 8.22 160 8.94
Sex
Female 2770 54.86 959 51.53 803 57.40 1008 56.34
Male 2279 45.14 902 48.47 596 42.60 781 43.66
【问题讨论】:
-
尝试将 ALL 移到单词后面?
table ((smoking_status all) sex) -
它仍然给我 100% 的所有百分比。
-
你能更清楚地解释你想要做什么吗?您需要多少百分比?
-
我希望第一行给出列总数的总和和百分比。因此,ALL 边界下的百分比应显示为 1861*100/5049=36.8%,而在希望下显示为 1399*100/5049=27.7%。目前它显示 100%,我需要改变它。感谢 Reeza 的回复!
-
换句话说,对于我想要 COLPCTN 的变量,对于第一行的通用 ALL,我需要 ROWPCTN。
标签: sas