有条件地更改SAS Proc报告中的列标题

时间:2019-07-10 21:20:39

标签: sas

是否可以通过使用SAS中的proc报告来有条件地更改报告中列的标题?我想根据数据集中的数据组更改列的名称。例如:让我们考虑数据集中有3组数据。对于第一组,我希望3个变量的名称分别为A,B和C。对于第二组,我希望3个变量的名称分别为D,E和F。对于第三组,我想要的三个变量的名称分别是X,Y和Z。

谢谢

我试图通过使用一个计算块在proc报告中设置一个临时变量,然后在下面的计算块中使用它来完成此任务。但是,我不能在计算块中使用define语句。由于这种缺陷,我失败了。下面是我尝试过的SAS代码。

proc report data=x1 nowd headline headskip missing split="|" formchar(2)='_';
    column ("&undl." pg grp subgrp aedecod _65 _6574 _7584);

    define pg/order noprint;
    define grp/order noprint;
    define subgrp/order noprint;
    define aedecod/display "Preferred Term" width=55 left spacing=0 flow;

    compute before subgrp;
        temp=subgrp;
    endcomp;

    compute _65;
        if temp = "AB" then
        define _65/ display "Age <65| (N=&le65_1.)| __________________| n (%) [Events]" width=20 style(column) = [just=D] flow;
        if temp = "CD" then
        define _65/ display "Age <65| (N=&le65_2.)| __________________| n (%) [Events]" width=20 style(column) = [just=D] flow;
        if temp = "EF" then
        define _65/ display "Age <65| (N=&le65_3.)| __________________| n (%) [Events]" width=20 style(column) = [just=D] flow;
    endcomp;

    compute _6574;
        if temp = "AB" then
        define _6574/ display "Age 65-74| (N=&bt6574_1.)| __________________| n (%) [Events]" width=20 style(column) = [just=D] flow;
        if temp = "CD" then
        define _6574/ display "Age 65-74| (N=&bt6574_2.)| __________________| n (%) [Events]" width=20 style(column) = [just=D] flow;
        if temp = "EF" then
        define _6574/ display "Age 65-74| (N=&bt6574_3.)| __________________| n (%) [Events]" width=20 style(column) = [just=D] flow;
    endcomp;

    compute _7584;
        if temp = "AB" then
        define _7584/ display "Age 75-84| (N=&bt7584_1.)| __________________| n (%) [Events]" width=20 style(column) = [just=D] flow;
        if temp = "CD" then
        define _7584/ display "Age 75-84| (N=&bt7584_2.)| __________________| n (%) [Events]" width=20 style(column) = [just=D] flow;
        if temp = "EF" then 
        define _7584/ display "Age 75-84| (N=&bt7584_3.)| __________________| n (%) [Events]" width=20 style(column) = [just=D] flow;
    endcomp;

    break after pg/page;
    break after grp/skip;
    break after subgrp/page;

    compute before _page_;
        line @1 'Subgroup:' subgrp $122.;
    endcomp;

    compute after _page_;
        line @1 134*'_';
    endcomp;

run;

请查看我正在使用的上述代码。如您所见,存在三个父子组,AB,CD和EF。在这三个父子组中,还有其他三个子年龄组,分别是<65岁,65-74岁和75-84岁。每个年龄子组(儿童)中的主题数(N)将根据其父子组(AB,CD和EF)中的主题数而变化。我很想知道是否可以使用proc报告在输出中有条件地反映N的变化。

0 个答案:

没有答案
相关问题