2017-06-28 16 views
1

からカンマを削除します。私はあるSASマクロ変数持つ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があまりにも多くの引数を持っている」を得ます。しかし、私はこれがあなたが通常それを使用する方法であると確信しています。ありがとう!

答えて

2

試してみてください。

%let varlist=OriginCd,DestinCd; 
%let newlist=%sysfunc(compbl(%sysfunc(tranwrd(%quote(&varlist),%str(,),%str())))); 
%put &=newlist; 

私は、パラメータの区切り文字として解釈されるカンマを防ぐために%quote()を追加し、働いていた別の%quote()

+0

の必要性を防ぐために、外部にcompbl()を切り替え!ご協力いただきありがとうございます。 – user3910919

関連する問題