我正在学习 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 中创建一个新列。我做错了什么。
感谢和问候
阿米特
当分析变量已用于计算统计量时,需要复合变量名称。您可以将数学和科学分别称为 maths.sum 和 science.sum。如果您将这些变量保留为显示变量,您也可以在没有复合名称的情况下引用它们。可以使用直接引用c3和c4,但是,如果您在 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)