1

我是这个网站的新手,我希望我能对我的问题有所了解。

我正在尝试做一个 SAS MACRO,我给出了几个参数。一个参数是 SAS 格式,我知道我是否可以这样做。如果可以的话,我不知道该怎么做。

这是我的 SAS 宏代码:

%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”是我要给出的参数。

这是对我的宏的调用:

%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。

你知道我该如何解决吗?

预先感谢,

此致

塞德里克

4

1 回答 1

2

你错过了一个时期。格式总是以句点结尾(或句点,然后是十进制长度格式的数字)。所以你的电话需要是:

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

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

format _NAME_ &format_var..;
于 2013-08-09T13:35:50.507 回答