ktruncate関数で日本語のデータを壊さずにバイト単位で切りだす

たいした内容ではないですが,更新することに意義があると思い書きます.

マルチバイト文字とシングルバイト文字の混在データを何バイトごとに変数に切り分けろっていう要望があったとします.(200byteとか…)

その場合,substrとかでやってしまうと,ちょうど切り出すバイトの切れ目がマルチバイト文字だった場合,文字が壊れます.とはいえksubstrだと,シングルもマルチも文字単位でとるので,データにシングルバイト文字が多かった場合,余分な空きが生じます(壊れるよりはマシだけど)

その場合,文字列を1文字ずつループで判定して足したりしていくプログラムを書いたりもしますが,ktruncate関数も便利です.

SASの説明をみてみると

KTRUNCATE関数

マルチバイト文字を壊すことなく、文字列をバイト単位で、指定した長さに切ります。

まさしくばっちり.

ためしてみます

data _null_;
file print;
x="あいうえお";
y=substr(x,1,5);
leny=length(y);
put y= leny=;

z=ktruncate(x,1,5);
lenz=length(z);
put z= lenz=;
run;

結果は








substrは無理やり5byte切り出して,文字をぶっ壊してますが
ktruncateはその手前でとどめて置いてくれます.
普通に良い関数なんで,私は好きです





久しぶり過ぎて何を書いていいのやらな話

SASユーザー総会で、毎日見てます!という温かい声援や、更新サボってんじゃねぇよ!っていう叱咤を思いの外たくさんの方にいただきました。本当に感謝してます。

また、全ては確認できてないんですが、発表やスライドの中で触れていただいた方も、たくさんいたようで有り難いかぎりです。ボーっと発表聞いていると、急に「○○さんのブログに書いてましたが…」とかって出てきてドキッとしました。正体バレバレ度合いが凄かったです。

毎日開いていると言ってくれる人に、毎日同じ記事見せるわけにはいかんですね。

SASをやる人に、仕事中のささやかな息抜きを提供するという志を新たに、少しずつ更新します。コメント等も全然返せてなくてすみません。返していきます

しかし、久しぶりすぎて、何を書いていいのかわからないので、SAS社がやってる日本公式の情報交換サイトを紹介します

Japan SAS Discussion
https://communities.sas.com/t5/Japan-SAS-Discussion/bd-p/ja_forum

すでにSAS忘備録で紹介されているので

SASユーザー間の情報交換サイト「Japan SAS Discussion」
http://sas-boubi.blogspot.com/2018/05/sasjapan-sas-discussion.html

知っている方も多いかもしれません。

個人的感想ですが、今が、日本のSASユーザーの踏ん張りどころな気がしています。
SASユーザー総会のオープニングや締めでも、一時期停滞し、高齢化していく一方であった総会が、再度活性化してきた。新しいSASユーザーが育ちつつあるといったことが語られていました。
この潮目をいかすためにも、お互いに情報交換して、高めあっていきたいですね。

話を戻しますが、
「SASプログラミング掲示板(データステップ100万回」
https://tumesas.progoo.com/bbs/

というサイトもあります。管理人のくせして、管理してないと忘備録のmatsuさんに会うたび、いつも怒られてます。本当にすみません、matsuさんやscdentさんやSASAIさん、その他多くの常連の方々に感謝と謝罪いたします。
一応、こっちも残しておくので、好きに使い分けてください。しかし、私がいうのもなんですけどJAPAN SAS Discussionの方を活性化させてほしいなぁと思ってます。(全然使われてねぇなってSAS社が判断して、閉じちゃったら嫌だから)

掲示板の方を使う場合ですが、質問の投げっぱなしはできるだけやめて、回答についてもお礼等のコメントをできるだけつけるようにお願いいたします。いや、私にこういうこと言う資格ないんですけどね…

ナニワデータサイエンスや、日本初開催のPharmaSUG SDE Tokyo 2018(https://www.pharmasug.org/sde/tokyo2018.html)など、関連イベントも活気があって、和製SASプログラマとしては、私達それなりに、いい時代に生きてるんじゃないでしょうかね。
私自身、できる限り、SASプログラマの発展のための活動には積極的に参加していきたいと思っているので、面白いことがありましたら一声かけていただけると嬉しいなぁって思います。

それでは、これから、何回目の再開宣言かわかんないけど、今度こそ!更新がんばります