在Proc报告中取消小计

时间:2015-03-26 15:48:43

标签: sas

我有一个proc报告,分组并进行小计。如果我在组中只有一个观察,则小计是无用的。我想要不做该行的小计或不做那里的观察。由于格式\风格不一致,我不想使用行语句。

这是一些示例数据。在报告中,Tiki(我的猫)行应该只有一行,数据中的obs或小计...

data tiki1;
name='Tiki';
sex='C';
age=10;
height=6;
weight=9.5;
run;

data test;
set sashelp.class tiki1;
run;

1 个答案:

答案 0 :(得分:1)

看起来你正在尝试做proc report无法一次完成的事情。但是,如果您只想要在此处描述的输出是一种不使用proc report的方法。

proc sort data = test;
    by sex;
run;
data want;
    length sex $10.;
    set test end = eof;
    by sex;

    _tot + weight;
    if first.sex then _stot = 0;
    _stot + weight;
    output;

    if last.sex and not first.sex then do;
        Name = "";
        sex = "Subtotal " || trim(sex);
        weight = _stot;
        output;
    end;
    keep sex name weight;
    if eof then do;
        Name = "";
        sex = "Total";
        weight = _tot;
        output;
    end;
run;
proc print data = want noobs;
run;

此方法通过获取滚动总和手动创建数据集中的小计和总计。如果你想要花哨的格式化,你可以通过proc report而不是proc print传递这些数据,Joe给出了一个例子here