是否可以在PROC TABULATE中使用PCTSUM来计算子组(或甚至子子组)占整个组的百分比?最好提供一个例子。
这是一个示例数据集:
data sample;
input make $ model $ owned rented;
datalines;
Toyota Corolla 400 224
Toyota Camry 750 700
Honda Civic 650 519
Honda Accord 225 203
;
我知道以下PROC TABULATE系列会给我出租的车辆百分比
proc tabulate data=sample;
class make model;
var owned rented;
table (make='Vehicle Make' all), owned='Total Owned'*sum rented='Rented'*(sum='Total Rented' pctsum<owned>='Pct Rented');
run;
像这样:
Veh Make TotOwned TotRent PctRent
Honda 875 722 82.51%
Toyota 1150 924 80.35%
All 2025 1646 81.28%
但是有可能通过模型打破这一点,以便它告诉我们不租用了多少百分比的公民(519/650 = 79.8%)但是所有本田公司租用的公民中有多少百分比( 875分之519= 59.3%)?
如何编写PROC TABULATE行以便它显示:
Veh Make VehModel TotOwned TotRent PctRent
Honda Accord 225 203 23.20%
Civic 650 519 59.31%
All 875 722 82.51%
Toyota Camry 750 700 60.87%
Corolla 400 224 19.48%
All 1150 924 80.35%
All 2025 1646 81.28%
请注意,本田车型的23.2%和59.31%总计达到本田小计的82.51%。
感谢您提供的任何帮助。
答案 0 :(得分:1)
我能做的最好的事情是将表格拆分成页面,然后使用PAGEPCTSUM
。您可以将其输出到数据集,然后使用其他PROC TABULATE
或PROC REPORT
或类似内容重新打印它(如果您使用的是打印输出)。
proc tabulate data=sample;
class make model;
var owned rented;
table (make='Vehicle Make'), model='Vehicle Model',
owned='Total Owned'*sum rented='Rented'*
(sum='Total Rented' pagepctsum<owned>='Pct Rented');
run;