SAS;TABULATE制作报表

/*TABULATE过程主要是输出统计量表,对整个数据集中的数据的汇总
语法
PROC TABULATE DATA=<数据集名称> <选项>;
CLASS <分类变量> </选项>;
VAR <分析变量>;
TABLE <<页维表达式> <行维表达式> <列维表达式> </选项>;
KEYLABEL 统计量1="标签1" 统计量2="标签2";
LABEL 变量1="标签" 变量2="标签";
RUN;
其中
CLASS语句是给出分类变量
VAR语句指定分析变量,分析变量一般是数值型变量
统计量:NMISS 、N 、MEAN、 STD、MAX、MIN、RANGE、SUM、USS、CUSS、STDERR、CV、T、PRT、VAR、SUMWGT、PCTN(频数百分数)、PCTSUM(和的百分数)
F=格式 说明输出项的宽度和小数点数(F=6.2说明输出6个字节宽度,小数点后两位(默认是小数点后两位))
*/
/*TABLE特别说明
其后跟的变量:若用空格相连,输出是并列的;若用逗号相连,输出的是汇总格式(行*列格式);若用*相连,输出是交叉格式(从上到下)
其后的选项:
RTS=N;规定表格左上角行标题格的宽度,默认是1/4
BOX=变量名;格式为"字符串",规定放在行标题左上角空框的文本
MISSING='文本';将最多20个字符的文本输出到包含默认值的格子
PRINTMISS;每一次变量标题被打印出来,打印分类变量的所有值,即使这些标题下的单元格没有数据(没数据的显示为缺失)*/

/*代码与例子*/
ods rtf file='D:filesSAS典藏SAS_skill5@费率 _图feerate_table.doc';

OPTIONS NOCENTER ls=max ps=max;
LIBNAME S 'D:filesSAS典藏SAS_skill5@费率 _图';

DATA S.feerate_noerror_1(KEEP=ScoreCard_Type working_status CustomerLevel FeeRate);
SET S.feerate_noerror;
RUN;

/*汇总表*/
PROC TABULATE DATA=S.feerate_noerror_1;
CLASS CustomerLevel FeeRate;
TABLE CustomerLevel,FeeRate;
TITLE 'TABULATE汇总表';
RUN;

/*并排列表:TABLE CustomerLevel FeeRate;*/
PROC TABULATE DATA=S.feerate_noerror_1;
CLASS CustomerLevel FeeRate;
TABLE CustomerLevel FeeRate;
TITLE 'TABULATE 并排列表';
RUN;

/*交叉汇总表*/
PROC TABULATE DATA=S.feerate_noerror_1;
CLASS CustomerLevel FeeRate;
TABLE CustomerLevel*FeeRate;
TITLE 'TABULATE 交叉汇总表';
RUN;

PROC TABULATE DATA=S.feerate_noerror_1;
CLASS working_status CustomerLevel ScoreCard_Type;
TABLE working_status CustomerLevel ScoreCard_Type,N*F=6.0 PCTN;
TITLE '并列显示:统计是否工薪、客户等级、评分卡类型的频数、百分比';
RUN;

/*按照客户分级做数据集对比报表*/
PROC TABULATE DATA=S.feerate_noerror;
CLASS ScoreCard_Type working_status CustomerLevel;
TITLE "汇总表显示:按照费率标准观测值是否全覆盖";
TABLE CustomerLevel,ScoreCard_Type*working_status*(N*F=6.0 PCTN);
RUN;

ods rtf close;

 其中ods rtf file='D:filesSAS典藏SAS_skill5@费率 _图feerate_table.doc';

       ods rtf close;

将生成的表格保存在指定的word里

 格式的设置,table的选项可以加

(1)rts=20.s设置BOX所在列的宽度,其他列的宽度可以通过N*F=20.2.设置输出频数所占字符。

(2)BOX='此处输入内容';

(3)style={just=center background=white cellwidth=200}设置标题内容位置、背景颜色、字符宽度

(4)PRINTMISS 将缺失的类别输出

(5)MISSTEXT=‘0’;将缺失的设置为0;

原文地址:https://www.cnblogs.com/Anni-love-Ferris-wheel/p/6684438.html