【偷懒的办法】
我在最后输出分析报表时常选择ods excel+proc report的组合,有时希望按照输出表格的格式对变量排序,而不是字母或者数字的顺序进行排序,于是需要自定义某些变量的排序。
例如,在某次分析中varname变量包括age、dm_bmi、dm_height、dm_surface、dm_weight,如果按照正常流程输出,proc report结果会如下:
这个结果明显是变量varname内首字母排序,但是我希望的输出顺序为:age、dm_height、dm_weight、dm_surface、dm_bmi,就需要对varname这个变量进行重新排序。
步骤如下:
/*首先proc format进行赋值*/
proc format;
value $varfmt
'age'=1
'dm_height'= 2
'dm_weight'=3
'dm_surface'=4
'dm_bmi_new'=5;
run;/*在对应数据集中利用put应用新的排序格式*/
data output1;
set output1;
new_varname=put(varname,varfmt.);
run;/*新的变量进行排序*/
proc sort data=output1;
by new_varname;
quit;
再次运行proc report代码就会发现varname按照要求进行排序,ods excel导出的Excel表格也会保持一致。