数据看起来像
TM a b c
A 1 2 0.5
B 2 5 0.4
理想输出是
TM c
A 0.5
B 0.4
All 3/7
我在pctsum
中尝试了proc tabulate
。但它并没有像我预期的那样发挥作用。
proc tabulate data = dat;
class TM;
var a b c;
table (TM='' all), (c * pctsum<b>='' * f=5.1);
run;
答案 0 :(得分:2)
我收集您希望您的总数为C列的平均值,由B列加权。在表语句中使用c * mean
并添加weight
语句。您无法将总数显示为分数,但您可以增加格式中的小数位数:
proc tabulate data = dat;
class TM;
var a b c;
table (TM='' all), (c * mean='' * f=5.3);
weight b;
run;
新选项:对于不同变量的不同权重,使用多个var
语句并为每个变量添加weight=
选项:
proc tabulate data = dat;
class TM;
var b / weight=a;
var c / weight=b;
table (TM='' all), (c * mean='' * f=5.3)
(b * mean='' * f=5.3);
run;