更改PROC方式中的统计标签(如PROC TABULATE中的KEYLABEL)

时间:2013-07-17 11:59:16

标签: sas

我知道我可以在PROC TABULATE中使用命令KEYLABEL为统计名称指定自定义标签,即:

KEYLABEL N =''ALL =“总计”PCTN =“百分比”SUM =“总计”;

它不适用于PROC MEANS。有同等的命令吗?我可以使用解决方法来执行此操作吗?我正在运行SAS程序并自动生成Latex markeup,因此我需要更改PROC MEANS命令中报告的N,SUM,MEAN,MEDIAN,MIN,MAX列的名称。

感谢。

1 个答案:

答案 0 :(得分:1)

不幸的是,我认为您不能将PROC MEANS中的自动变量标签更改为自定义标签。您可以标记变量:

proc means data=sashelp.class;
var age;
label age="Child's Age";
class name;
output out=classmean sum=;
run;

您可以使用AUTOLABEL自动附加(默认)标签:

proc means data=sashelp.class;
var age;
label age="Child's Age";
class name;
output out=classmean sum= n= /autoname autolabel;
run;

但我不认为你可以进一步控制它。我能想象的最简单的解决方案是使用PROC DATASETS编写一个宏来执行它[获取已知的变量名称并根据这些名称为它们分配标签]。我不知道你需要做什么,但这并不是非常困难。这样的事情(特别是proc sql会根据你的程序而有很大差异。)

%macro relabel(var=);
label &var._n = "&var. Count";
*... more of these ...;
%mend relabel;

proc sql;
select cats('%relabel(var=',name,')') into :rellist separated by ' ' 
  from dictionary.columns
  where memname='MYDATASET' and libname='WORK' and *criteria to determine in proc means*;
quit;
proc datasets;
&rellist.
quit;
相关问题