BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
sskt
Obsidian | Level 7

お世話になります。

 

特定の文字-や_などを半角スペースに置換したいと考えているのですが、うまくいきません。

半角スペースを削除する関数ならたくさんあるようなのですが。

以前にも同じような質問をしていたので、クォーテーションは不要とか引数の順番とか色々試してみましたが、わかりません。

詳しい方、やり方を教えていただけないでしょうか。

 

%let out = x_2023;
%let tout2 = %sysfunc(tranwrd(&out, '' ,"_")); 

 

1 ACCEPTED SOLUTION

Accepted Solutions
moriokayutaka
Fluorite | Level 6

%letでの記載,私も苦手ですが,もし単語が入っても大丈夫なようにtranwrdを使いたいってことであれば今回のケースだと


%let out = x_2023;
%let tout2 = %sysfunc(tranwrd(&out,_,));

でいけると思いますが(※置換文字列が0レングスの場合,半角スペース一つにするというtranwrdの働きで)

クォーティングからむ文字が対象のこともあるかもなので,以下とかの方が安全ですかね

%let out = x_2023;
%let tout2 = %sysfunc(tranwrd(&out,%str(_),%str( )) );



View solution in original post

1 REPLY 1
moriokayutaka
Fluorite | Level 6

%letでの記載,私も苦手ですが,もし単語が入っても大丈夫なようにtranwrdを使いたいってことであれば今回のケースだと


%let out = x_2023;
%let tout2 = %sysfunc(tranwrd(&out,_,));

でいけると思いますが(※置換文字列が0レングスの場合,半角スペース一つにするというtranwrdの働きで)

クォーティングからむ文字が対象のこともあるかもなので,以下とかの方が安全ですかね

%let out = x_2023;
%let tout2 = %sysfunc(tranwrd(&out,%str(_),%str( )) );



Ready to join fellow brilliant minds for the SAS Hackathon?

Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.

Register today!
Discussion stats
  • 1 reply
  • 793 views
  • 1 like
  • 2 in conversation