2019年1月24日木曜日

冬のSAS忘年会にいってきた話

12月21日,SASの発表会に行ってきた.
年末だけあって何分立て込んでいたがなんとか間に合う時間に退社し,いそいそと会場に向かう.
当日はあいにくの雨,ただでさえ寒いのにさらに冷えるのはほんと勘弁してもらいたい.
途中にある松屋で牛飯をかきこんでから会場に入る.松屋は牛丼ではない,牛飯です.
会場に入って待つことしばし,まあ来るわくるわ参加者が.途中から何人来るかの把握をあきらめていたが,やはり今回は多かった.全部で10人ちょっとか.
とりあえず椅子だけ並べて会長の100万回の管理人さんの挨拶を頂いて,さて皆で発表.
1人5分程度のライトニングセッションなのだがコレが気楽で良い.30分質疑込みとか重すぎてしんどいだけである.
グラフから始まり文字コードなどのバラエティに富んだ発表がたくさんだった.よくもまあそんなネタが出てくるもんである.
終わった後は飲み屋で串を食べ食べ他愛も無い話に花が咲く.私はお酒はダメなのでミックスジュースだった
気づくと終電の時間が近く,食べ過ぎの体に鞭打って駅に走りとても苦しかった.たまたま電車が遅れていたので終電に間に合い無事帰宅と相成った.

毎度場所の選定から飲み会のセットまでやってくださる方には頭が上がらない.
この場を借りて感謝をお伝えします.ありがとうございます.
そろそろ人数が増えてきたので,どこか良い感じの場所があるといいなあ,どこかに親切なS○S社とかいませんかね.
連絡手段もメールはそろそろ限界ですしなあ

2019年1月1日火曜日

文字列の前後のスペースを除いてマクロ変数を作る話

たとえば"  test"のような,マクロ変数にしたい文字列の前後に要らないスペースがある時,
スペースを取り除いてマクロ変数にすることがあると思います.
今回の例で言うと"test"と言う値をマクロ変数に格納する場合です.

そんな時はcall symputxが便利ですよ,と言う話です.
call symputxだと前後のスペースを取り除いてマクロ変数にしてくれます.
call symputx("a" , "  test")と,call symput("a" , left(trim("  test") ))は同じです.

割と色んな場所で見かける紹介なのですが,あえてcall symputでマクロ変数を作っていてスペースを取り除き忘れたために
意図しない挙動を取ったプログラムを見かけたので私も紹介します.

/*---------- 以下マクロ変数作成時のプログラムの例 ----------*/
data _null_ ;
    call symput("a1"  , "  test") ;
    call symput("a2"  , left(trim("  test") )) ;
    call symputx("a3" , "  test") ;
run ;

%put &=a1 ;
%put &=a2 ;
%put &=a3 ;

/*---------- 作成したマクロ変数をlogに表示 ----------*/
39
40   %put &=a1 ;
A1=  test
41   %put &=a2 ;
A2=test
42   %put &=a3 ;
A3=test