TABULATE过程的主要功能是输出统计量表,它是对整个数据集中的数据的汇总。
  TABULATE过程的一般格式为
  PROC TAULATE DATA=数据集名称;
  CLASS 分类变量;
  VAR 分析变量;
  TABLE 页维说明 行维说明 列维说明/选项;
  RUN;
  其中CLASS语句给出分类变量,给变量分类之后可以分别计算它们的统计量,VAR语句指定了对哪个变量进行统计分析,分析变量一般是数值型变量,在TABLE语句中说明表格的结构。
  
  例1 输出报表反映男女生数学成绩总和,这时分类变量就是SEX 分析变量是MATH表格的结构是性别为行数学总成绩为列
  proc tabulate data=score;
  class sex;
  var math;
  table sex,math;
  run;
  注意在程序中并没有使用SUM来求和,这是因为TABULATE本身就是一个汇总过程。在默认的情况下它将输出分析变量的求和,当然还可以输出分析变量的其他统计量,例如N、NMISS、MEAN、STD、MIN、MAX、RANGE、SUM、USS、CSS、STDERR、CV、T、PRT、VAR、SUMWGT、PCTN、PCTSUM 等
  例3 输出报表反映男女生数学语文成绩的平均值方差
  proc tabulate data=sasuser.score;
  class sex;
  var math chinese;
  table sex,(math chinese)*(mean var);
  run;
  在程序中可以看到对于处于同一个层次的变量,它们之间要用空格分隔开来例如math 和chinese,它们都是需要分析的变量mean 和var它们都是统计量,而对于行维或列维中的不同层次的名称要用号连接例如math chinese 和mean var 它们同处于列维,但是层次不同应该用号连接
  例3 使用统计量N 个数和PCTN 百分比计算性别的频数
  proc tabulate data=sasuser.score;
  class sex;
  table sex*(N PCTN);
  run;
  在这个程序中因为性别与两个统计量属于不同的层次,所以应该用*号把它们连接起来。上面的TABULATE 只计算了分类统计量,即分别计算男生女生的统计量,而没有计算总的统计量。如果希望计算的话,可以在SEX后加上一个ALL代表所有的记录。
  例4 输出报表不但包括按照性别分类的数学语文成绩的均值和方差,还包括对所有记录计算的两门功课的均值和方差,程序如下
  proc tabulate data=sasuser.score;
  class sex;
  var math chinese;
  table sex all,(math chinese )*(mean var);
  run;
  在TABULATE过程中可以使用LABEL语句使变量显示标签用KEYLABEL语句,使统计量显示标签
  例5 将上面表格中的名称替换为对应的中文标签
  proc tabulate data=sasuser.score;
  class sex;
  var math chinese;
  table sex all,(math chinese )*(mean var);
  keylabel mean=’均值’var=’方差’all=’总计’;
  label sex=’性别’math=’数学’chinese=’语文’;
  run;

例6:

proc tabulate data=p1_2;
class flow_apply date_flag seg;
var apply_cnt ap output_amt base_amount p1 p2 p3 p4 p5 p6 p7;
table seg=""*flow_apply=""*(apply_cnt ap output_amt base_amount p1 p2 p3 p4 p5 p6 p7)*sum="",date_flag="";
where applydate<today();
run;

iostat输出的各项参数含义 tabstat结果输出_数据集