过程报告计算

Ami*_*ija 3 sas

我正在学习 proc 报告,并想用计算列制作一个简单的报告。

这是我的代码:

proc report data = schools nowd;  
    columns school class maths science total;  
    define school       / group;  
    define class        / display;  
    define maths        / analysis;  
    define science      / analysis;  
    define total        / computed;  

    compute total;  
        total = maths + science;  
    endcomp;

run;
Run Code Online (Sandbox Code Playgroud)

这是我得到的输出:

Schools   Class     Maths   Science      total  
Airport    i            50         41          0  
Airport    ii           92         53          0  
Airport    iii          62         60          0  
Airport    iv           66         61          0  
Amrut      i            84         58          0  
Amrut      ii           42         83          0  
Amrut      iii          53         64          0  
Amrut      iv           89        100          0  
Asia       i            42         74          0  
Asia       ii           48         91          0  
Asia       iii          75         76          0  
Asia       iv           46         84          0  
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释一下为什么我得到的值为 0。我相信可以在 PROC REPORT 中创建一个新列。我做错了什么。

感谢和问候
阿米特

Jay*_*ett 5

当分析变量已用于计算统计量时,需要复合变量名称。您可以将数学和科学分别称为 maths.sum 和 science.sum。如果您将这些变量保留为显示变量,您也可以在没有复合名称的情况下引用它们。可以使用直接引用c3c4,但是,如果您在 COLUMNS 语句中更改了这些变量的顺序,则会改变您的计算(只是需要考虑的事项)。

proc report data = schools nowd;  
 columns school class maths science total;  
 define school       / group;  
 define class        / display;  
 define maths        / analysis;  
 define science      / analysis;  
 define total        / computed;

 compute total;  
  total = maths.sum + science.sum;  
 endcomp;
run;
Run Code Online (Sandbox Code Playgroud)