proc制表得到`sumproduct`结果

时间:2015-02-04 01:52:32

标签: sas proc

数据看起来像

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;

1 个答案:

答案 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;