如何在SAS MACRO中使用FORMAT作为参数?

时间:2013-08-09 13:28:52

标签: parameters macros format sas

我是这个网站上的新手,我希望我可以解决问题。

我正在尝试使用SAS MACRO,我提供了几个参数。一个参数是SAS FORMAT,我知道我是否可以这样做。如果我能,我不知道该怎么做。

这是我的SAS MACRO代码:

%macro creation_graphique_par_classe (listvar=,titre=,format_var=);
goptions reset=global;
PROC GCHART DATA = moyennes_fichier1_clus;
TITLE &titre;
VBAR _NAME_ / DISCRETE
SUBGROUP = _NAME_
SUMVAR = COL1
TYPE = SUM
GROUP = cluster 
coutline=black
woutline=1 ;
LABEL COL1 = "Moyenne en MW" _NAME_ = "Production" Cluster= "Classe";
FORMAT _NAME_ &format_var. cluster classe.; 
WHERE _NAME_ IN &listvar;
RUN ; QUIT ;
%mend;

所以“format_var”是我想要的参数。

这是我的宏的CALL:

%creation_graphique_par_classe (listvar=&list_var_espt,titre='Production en  
Espagne',format_var=$_NAME_nom_complet);

它表示在SAS TABLE WORK.moyennes_fichier1_clus中找不到_NAME_NOM_COMPLET。

你知道我怎么解决它吗?

先谢谢,

最好的问候

和Cédric

1 个答案:

答案 0 :(得分:2)

你错过了一段时间。格式总是以句点结尾(或者是句点,然后是具有小数长度的格式的数字)。所以你的电话需要是:

%creation_graphique_par_classe (listvar=&list_var_espt,titre='Production en  
      Espagne',format_var=$_NAME_nom_complet.);

您也可以将句点放在格式语句中,但如果这样做,则需要执行两次,因为第一个(可选)句点终止了宏变量。

format _NAME_ &format_var..;