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( )) );



sas-innovate-2024.png

Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.

 

Register now!

Discussion stats
  • 1 reply
  • 606 views
  • 1 like
  • 2 in conversation