从SAS宏变量中删除逗号

从SAS宏变量中删除逗号,sas,sas-macro,Sas,Sas Macro,我有一个SAS宏变量,它是: &varlist. = OriginCd,DestinCd 我试图得到一个新的宏变量,它是相同的东西,但删除了逗号和一个空格。因此: &newlist. = OriginCd DestinCd 我尝试了以下方法: %let newlist=%sysfunc(tranwrd(%sysfunc(compbl(&varlist)),%str(,),%str( ))); %let newlist = %sysfunc(compress(&

我有一个SAS宏变量,它是:

&varlist. = OriginCd,DestinCd
我试图得到一个新的宏变量,它是相同的东西,但删除了逗号和一个空格。因此:

&newlist. = OriginCd DestinCd
我尝试了以下方法:

%let newlist=%sysfunc(tranwrd(%sysfunc(compbl(&varlist)),%str(,),%str( )));
%let newlist = %sysfunc(compress(&varlist,','));
%let newlist = %sysfunc(tranwrd(&varlist,","," "));
对于tranward函数,我得到“由%SYSFUNC宏函数引用的函数TRANWRD有太多参数”。但我很确定这就是你通常使用它的方式。谢谢

试试看:

%let varlist=OriginCd,DestinCd;
%let newlist=%sysfunc(compbl(%sysfunc(tranwrd(%quote(&varlist),%str(,),%str( )))));
%put &=newlist;
我添加了
%quote()
以防止逗号被解释为参数delimeters,并将
compbl()
切换到外部以防止需要另一个
%quote()