ラベル その他 の投稿を表示しています。 すべての投稿を表示
ラベル その他 の投稿を表示しています。 すべての投稿を表示

2025年12月22日月曜日

sasの公式がgithubつくってるやん

 2025年のsasユーザー会には都合が合わなかったので参加していなかったのだが、資料を振り返ると面白そうなのがあった。SAS公式がお出ししたSASのパッケージだ。最近何かと流行っているSASPACの仕組みを利用したパッケージ群にSASが公式が乗り出す形になっている。SASToolboxとか言う公式にふさわしい名前だ。これについての発表資料はこちら

データセットのutf8変換、フォルダ内のファイルの一括sas7bdat化、フォルダ内のsasファイルを一括インクルードとどれも使う場面の多いマクロが公開されている。一括インクルードは私も自作のがあるが、読み込み順をある程度引数で調整できるようになっているのは画期的だ。私にはここまで実装するのは難しかったのでプログラムファイル名の工夫でこの順番を制御していた。先頭に数字付けたりとか……

こうやってみんなが公開されてる同じパッケージの関数を使いだすと、業界的に必須のダブルプログラムが形ばかりになるよなとは思っている。正副で同じ関数使うと必然的に同じ結果が出てくるので何の検証にもならない。まあこの問題は突き詰めると最近流行りのOSSでも同じことが言えるので、その内偉い人がこうしよう的な話を出してくるだろう。下請けの私は右向け言われたら右向きます。

みんなで色んなものを公開して修正していくのは嫌いではない。メンテナ誰がやるねんとか、いつまで更新されてるんや!?とかプルリクエスト対応ってもしかしてタダ働きですか!?とか付随する様々な問題は既に見えているが、今はこの甘美なバタバタに身を任せたい。

それは別にして会社のパソコンからgithubにアクセスしてアップロード/ダウンロードするの怖いよね。セキュリティが。これは情報セキュリティ的に問題ない通信です!ってどうやって説明しているのだろう。こんな古臭いことを考えてるのは私だけか?

2025年8月30日土曜日

複数のエクセルファイルを結合し、指定したシートの順番に並び替えるマクロ

 複数のエクセルを結合して一つのブックにまとめる際に、シートの順番もこちらで指定したいときがあるとします。ありますよね?あるとしましょう。例えば100でも200でも良いのですが結果の図表をエクセルに出す必要があるとき、二人で各50個作って最後にまとめる時…とかです。既にあるエクセルファイルに後からシートを指定した位置に追加する時もそうです。ブックの結合もめんどくさいですし、シート順の調整なんて手でやっていたら夜どころか朝になってしまいます。

以下に記載のVBAでそれなりに結合してシート順も指定できて便利です、との自作VBA自慢の記事です。この手の記事はLLMの登場以降ニーズが少ない気もしますが…LLMに聞けば出してくれますしね。そんなことは知らん。自慢すると言っておろうが。

1シート目に実行ボタンを付けて、結合前のファイルを格納したフォルダと結合後のファイルを出力するフォルダをそれぞれhogeとpiyoに指定します。sheetSortOrderシートには結合後のシートの順番を記載しています。後は画像下にあるvbaのコードを張り付けて実行すれば結合が出来るというわけです。


罫線を入れているA列に結合後のシート順をしてください。


複数ファイルを指定すると結合+シート順の並び替えになりますが、結合前フォルダに1つのエクセルファイルだけにするとシート順の並び替えだけになります。これだけでもとても便利。以下がVBAのソースコードになります。

Sub combineMacro()

    Dim folderPath As String

    Dim filename As String

    Dim targetBook As Workbook

    Dim afterBook As Workbook

    Dim targetSheet As Worksheet

    Dim sheetSordOrder As Range

    Dim sheetName As String

    Dim sortFlag As Boolean

    Dim runTime As String

    Dim savePath As String

        

    ' 結合するExcelブックが保存されているフォルダのパスを指定

    folderPath = ThisWorkbook.Sheets("Sheet1").Range("D12").Value & "\"

    

    ' 新しいブックを作成

    Set afterBook = Workbooks.Add

    

    ' 結合マクロが保存されているブックのSheetSortOrderに記載されているシート順を取得

    Set sheetSordOrder = ThisWorkbook.Sheets("SheetSortOrder").Range("A1").CurrentRegion

    

    ' フォルダ内のExcelブックを結合

    filename = Dir(folderPath & "*.xlsx")

    Do While filename <> ""

        Set targetBook = Workbooks.Open(folderPath & filename)

        

        ' シートを結合ブックに追加

        For Each targetSheet In targetBook.Sheets

            targetSheet.Copy After:=afterBook.Sheets(afterBook.Sheets.Count)

        Next targetSheet

        

        targetBook.Close False

        filename = Dir

    Loop

    

    ' シートを並び替える

    For Each targetSheet In afterBook.Sheets

        sheetName = targetSheet.Name

        sortFlag = False

        

        ' シート名がシート順に含まれているかチェック

        For Each V_CELL In sheetSordOrder

            If V_CELL.Value = sheetName Then

                targetSheet.Move Before:=afterBook.Sheets(V_CELL.Row)

                sortFlag = True

                Exit For

            End If

        Next V_CELL

        

        ' シート名がシート順に含まれていない場合は削除

        If Not sortFlag Then

            Sheets(sheetName).Delete

        End If

    Next targetSheet

    

    ' 結合ブックを保存

    ' 実行日時を取得

    runTime = Format(Now, "yyyymmdd_hhmmss")

    

    ' 保存パスを取得

    savePath = ThisWorkbook.Sheets("Sheet1").Range("D14").Value & "\"

    afterBook.SaveAs savePath & "結合後" & runTime & ".xlsx"

    ' ブックを閉じる

    afterBook.Close   

    ' メッセージを表示

    MsgBox "結合が完了しました。"

End Sub



2025年7月1日火曜日

OSSのライセンスについての話

 最近はRやpythonなどのOSSの利用が進んでいる。COREなんかはMITライセンスなのであまり細かいことは気にしなくても良いが、利用するパッケージによってはAGPL>3.0やapach>2.0等のライセンスが設定されている。apach>2.0はそのライセンスのOSS利用した場合は特許や許諾の表示を入れなければならないし*1、AGPL>3.0は成果物が公表された場合は利用したソースコードを公開しなければならない*2

…等と定められているが、例えばAGPL>3.0は2.Basic Permissionsに「The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work.」…実行された対象からの出力が、内容から判断してその対象物に該当する限りライセンスの対象にする…とある。製薬業界ではライセンス対象であるソースコード…往々にしてこれは当局への説明資料…が、最終成果物である医薬品には直接使用されていないので、ライセンス対象にはならないのではないか。もちろんこれは1ペーペーのおっさんが垂れ流している駄文なので正しいかはわからない。法務に詳しい方が見れば何を当たり前のことを…?/何を的外れなことを…?となるかもしれないが、現時点で何となく私の考えは上述の通り。

これまでSASという大きな傘の下にいたがOSSという大海原に漕ぎ出すにあたって、ライセンスなどの基本的な事項について一度立ち止まって考える機会はこれからも大切にしていきたい。


*1

https://licenses.opensource.jp/Apache-2.0/Apache-2.0.html

4.再頒布より

*2

https://www.gnu.org/licenses/agpl-3.0.html

2.Basic Permissionsより

2024年11月1日金曜日

SASの勉強会に行ってきた話

 先日sasの棒発表会に参加した。偉大な主催者の人徳により今回も盛況に終わった。午後の間に発表を21本聞くのは本当に疲れた…

一番興味深いのはSASPACに関する発表。SASは作ったマクロなどを公開するには、ブログなりにコードを記載するくらいしかなかったのが、SASPACを使えば統一されたformatで公開できるというわけだ。あまりにも便利そう。そんな場所に公開できるほどの立派な代物をひとつも持っていないことが大きな問題か…

私も発表…はしたのだが、勉強会公式で資料が公開されているし、身バレが怖いのでここでは資料の公開はしない。身バレコワイ。今年も無事開催になり、私に発表の機会を与えてくれた運営の皆様には感謝の限り。来年のネタないんだがどうしよう…

2024年10月14日月曜日

sasユーザー会2024に参加した話

 なんだか数年ぶりにユーザー会に参加した。今年の会場も東大だったがキャンパスが違うとのこと。まあ何となく人の流れに乗っていくと無事ついたので良かった。自分の発表が一日目の午前であることに気が付いたのが当日3日前とかだったので、諸々の申請が間に合わず頑張って朝7時前の新幹線に乗って会場に突入。前泊…したかったな…。現地ではまさかトラック3がトラック2より大きい会場とは思わず、随分会場付近をトラック3の場所を求めてノベルティでもらったsasエナジードリンクを片手にウロウロとしてしまったのはご愛嬌。多分かなり怪しい人物になっていたと思う。…sasエナジードリンク!?恐ろしいノベルティだ。エナジーが尽きてもsasを書けということか(個人の見解です)

ぶっちゃけ今年はあまり発表するつもりはなかったが、初参加の後輩が発表すると言っているのに見捨てるわけにはいかないと思って急遽発表資料をこしらえた。かつて私が初めて発表する際には偉い人が二人も登壇していたことに随分助けられたので、今度は自分の番がきたというわけだ。自己満の領域だが私には発表登録する十分な理由だった。急遽決めたのであらゆる申請がぎりぎりだったがよく間に合った。多大なご迷惑をおかけしたことでしょう…ありがとうございました…

今年の発表も面白そうなのが多かった。文字コード、dataset-json、グラフ軸目盛の自動調整、SASでゲーム…sasでゲームの発表はぜひ聞きたかったが2日目は諸般の事情により午前で引き上げざるを得なかった。後日発表資料を読むもまあ内容にピンと来ない。ある程度powershellは触ったことがあるので何となくわかるかなーと思いきや全然である。まだまだ自分のpowershell力が足りないな…これでは立派なpowershellおじさんを名乗れないではないか。名乗る必要があるのか?pythonでも書いてろ。

なんにせよ今年のユーザー会も無事終わって何より。終わってからしばらくは咳が止まらずとんでもない体調不良に見舞われたがそれも無事収まってよかった。息か咳かどっちしてるのかわからん位の状態になるのは本当に大変だった。久しぶりの遠出に肉体が付いていかなかったのだろう。あまりにも貧弱な体には困ったものだ。毎年恒例だが来年の発表のめどが何もついていないのでこちらもどうしたものやら。結局発表するにしても締め切りぎりぎりに登録することになるのだろう…


2024年8月1日木曜日

最近使っているeditorをVSCODEに移行した話

 もともとプログラムを書くのにバキバキに改造した秀丸エディタを使っていたが、最近有識者の手助けもありVSCODEに移行した。基本的に便利。ちょっと文字コードの融通が利かないことがあるが多分私が上手に使えていないだけで良い方法があるんだと思う。VSCODEといえば拡張機能をはじめとした種々の昨日の豊富さが売りなので、私がよく使っている機能を紹介する。あまりにもキーボードショートカットが多すぎて全然把握しきれないし、とりあえずで登録しようとしたら大体何かと衝突すると警告される。

キーボードショートカット

  • ctrl+shift+[: 今カーソルが当たっている個所のインデントを折りたたむ
  • ctrl+shift+]: 今カーソルが当たっている個所のインデントを展開する
  • ctrl+shif+fでgrep検索 …ただし事前にVSCODEでフォルダを開いている必要がある
    • 検索結果から除外するファイル/選択するファイルを正規表現で指定できるので、とりあえず検索対象に*.sasを選択している。この辺の設定は前回の指定を結構覚えているので頻繁に指定しなくても良いので助かっている
    • grep検索した後alt+enterすると検索結果を新規editorを立ち上げて表示してくれる
    • grep検索の結果をサイドバーに出すときは標準で展開された状態だが、右上の端のアイコンを押すと全部折りたたんでくれる
      • 標準で折りたたんだ状態で出してくれる設定とかないんかな。多分あるんだろう
拡張機能
  • SASの公式 
    • これがあるとプロシジャなどの入力補完からハイライトまでしてくれるので必須。設定を頑張ればVSCODE上でSASを動かせるらしいがそこまでは試していない
  • VSCODE日本語化
  • alignment
    • 指定した範囲を事前に指定したキー文字列で縦にそろえてくれる拡張
    • 設定のjsonファイルを開けて、カンマをキー文字列に追加して、要らないキー文字列を削除した後、F1のコマンドパレットからalign all charsするかalt+;で実行
    • setting jsonは左下の歯車→設定→拡張機能→alignment configurationからsetting jsonファイルを開けて中のalignment.charを修正すればキーの指定が可能。 私は; , then,=を指定している

例えば以下のようなカンマ区切りの文字列を、カンマの位置を揃えるように縦に整形する
a,b,c
12,34,56
a  ,b  ,c
12,34,56

その他
SASの関数や引数の補完はSASの公式拡張がやってくれるので、ユーザースニペットを現在の日付や名前などの定型文挿入に使っている。挿入するユーザースニペットは設定のSAS.jsonに指定しているので、SASファイル以外では余計なスニペットを起動しないのが非常に便利。
例えば以下のように、todayと入力すると現在の年月日がハイフン区切りで入力されるものを設定している
  "today":{
        "prefix": "today",
        "body": ["$CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE"] ,
        "description": "today",
    }

ctrl+@で画面下部でコンソールを起動して、そこでpowershellを操作できる。SAS書いているときに使うことはあまりないのだが、データを見ながら手元のeditorで簡単な計算ができるのは結構便利。例えば詳細な指定はできないが2つの日付の間の日数を手元で出すことができるのも結構助かっている。以下のようにすれば前の日付から後ろの日付までの期間を出してくれる。もちろん四則演算も可能。
new-timespan "2022/03/13" "2023/04/14" | format-table -property days 
この下部コンソールのpowershellはVSCODEで開けているフォルダを現在のディレクトリと認識してくれるので、簡単なものなら適当に別フォルダでも使いまわせてしまうのもgood

行全体ではなく矩形選択はctrl+shift+alt+矢印で指定する。これは押すキーが多くてちょっと押しにくく不便。4キー押しはさすがに無理なのでキーバインドを変更したいが良い感じのものが大体既存の設定と競合するので変えれていない。

選択箇所を全て大文字に変換するのは標準だとどのコマンドか忘れてしまった。私はalt+uに割り当てを早々に変えてしまった。

以上が何となく私が使っている設定の一部だ。あまりにも豊富すぎてまだ把握できていない。これからもVSCODEを利用して仲良くなれるようしていきたいと思うが、今まで使っていた秀丸エディタも便利なので場合によって使い分けていきたい。あまりにも融通の利く秀丸マクロの完全な移行が出来ていないので…多分完全に置き換えるのは無理だろうなあ…


2024年4月1日月曜日

SASの勉強会に行ってきた話

先日某所にてSASの某発表会に参加した。開催当初から参加しているが、ずいぶん大所帯になったものだ。すげーわ。これが主催者の某氏の人徳かと恐れ入るばかり。最初は4人だか5人だかくらいだったのが今は40弱て。 

私の発表資料はこちら。今回はproc sgpie…またこいつグラフ書いてんな。他にやることないんか。円グラフについてのプロシジャを紹介する内容だ。GTLで良くない?みたいな正論パンチはご遠慮いただきたく。何の反論もございません。この資料は例によってマイクロソフトのswayを使っている。発表に使ったPPTを雑に公開するにはこれ以上ない便利ツールなんだが私以外の人が使っているのを見たことがない。お願いだからマイクロソフト君はこんな便利なサービスを終えないでくれ。

10分程度の短い発表とはいえ10本強の発表を聞くのはすごいカロリーを要する。どれも面白くて興味深いのだが。ワーッと発表がきてうわーっとなるのはSASユーザ会みたいな30分と発表の枠の大きなところでは味わえない醍醐味か。どちらもとても楽しい。

関係者各位の多大なご厚意によってこの勉強会は成り立っています。みなさままことにありがとうございました。

2021年6月9日水曜日

sas発表会に参加した

 前回延期したのが2020年1月末,実にそこから一年強空いたがsasの発表会に参加した.昨今の情勢もありオンライン開催となったが,会場を提供してくださった方に多大な感謝を.

今回の私の発表はswimmerplotについて…こいついつもグラフ描いてんな,なんてことは言ってはいけない.最近は闇の勢力によってexcelでKM曲線出せだの,excelでforestplot出せだの摩訶不思議なworldに足を踏み入れている.地獄か?最近はやりのspotfire君は早く私を助けてくれ.excelでKM曲線書くときのヒゲをどうするかと言う偉大な問題は人力で解決したが,設定で出せるやろVS設定考えてる暇あったら人力でやってしまえ,どうせこんな話二度とこない.の葛藤の末のことだった.何とか良い感じに処理できるように工夫したいところ.

今回の発表会も奇々怪々,いや失敬,多様な内容だった.複数のグラフを1枚のwordに並べるときによくわからない事象が起きるのはどこも共通のようだった.あと野球のシミュレーションの話がなかなか面白そう.ああいうの見るとちょっとやりたくなりますなります.

次回開催は未定.ユーザー会が秋なので冬にするか,いっそ夏にするか,夏だと発表の準備が間に合わんから冬だったらうれしいなって思う.

2021年のsasユーザー会のアブストの締め切りが7月にあるが,正直気づいてなかったし今年の私の予定がやべーので多分間に合わない.あきらめの境地である.オンライン開催なら有給で潜り込んでもバレへんかな…などと考えているが,やっぱり今年も申請して参加するのだろう.予定が合えばだが.

最後に共有フォルダの設定がポンコツなのは修正しますので少しお待ちください…すみません…

2021年2月1日月曜日

SAS9.4のM7が来てた

 気づかないもんですね…SAS9.4M7が2020年8月に来ていたようです.毎度言ってるんですけど,もうちょっと上手く自分がこの手の情報を拾いたいですね.たまたまでしか見かけたことが無い

sasのhelpのここにありました.メンテナンスリリースによるSAS9.4の拡張って章です.新しい関数やプロシジャと言うよりは調整が主ですかね.一番の見どころはやはりflash関連でしょうか
以下の記載の通りflashの対応したそうですね,M6までの分はflashが終わってから影響ないのか不安ではありますが,まあ1ユーザにはお祈りしかできること無いですね.南無南無

--ここから引用
SAS 9.4M7では、SASオファリングからAdobe Flashの依存関係を取り除くための数年にわたる取り組みが完了しました。Adobe社は、Flashテクノロジのサポートを終了し、2020年末にはFlash Playerの更新と配布を停止すると発表しました。ブラウザベンダは、2019年にデフォルトでFlashを無効にしました。Adobe Flashのサポート終了の詳細については、SASソフトウェアとAdobe Flash Playerの使用についてを参照してください。
--ここまで引用

あとは既知の内容の修正が多いですね.見始めるときりが無いので取り上げませんが,一覧は上がっています.まあメンテナンスリリースですし,新機能の追加よりこっちの方が主になるのが自然に思えます

私がM7を使えるようになるのはいつだろうか…


2020年12月1日火曜日

PharmaSUG2020 TOKYOに参加した話

 昨年参加してからもう1年がたったことに驚きだが今年もPharmaSUGに参加した.今年はコロナもあってオンライン開催.昨年は前日に東京に入って準備やらしたのが懐かしい.家にいると気楽なのはいいのだが「ピンポーン」と誰か来るのはもはやご愛敬.残念午前はQAを見ないといけなかったので呼び出しに応じることはできず客は去っていった.用があるならまた来るやろ.準備にかこつけて普段会えない方と集まるのはいい機会ではあったのだがこんなご時世なので致し方ない.いややっぱり大都会東京のオサレお店でご飯食べたかった.大いに残念である.こんな時くらいしか東京行かないのに.

今年の演題はコロナコロナ&covid19とこんなご時世なのはPharmaSUGの内容にも及んでいる.せっかくの機会で諸々のプロセスを見直したりとか,伝播の状況を可視化したりとかなかなか面白い発表がたくさんだった.いやなにかわかったようなことを書いてしまったが英語パワーが足りないのは昨年と同じで,内容が全然サッパリと言う所が多かった.後で資料見てこんなんやったっけ?となることもしばしばである.
オンラインでの研修はあまり参加したことがなかったので色々難しいことがあったが,まあ無事終わってやれやれ.もしこの他にオンライン開催のイベントがあれば,参加してどういう運営をしているのかを見てみたい.せっかくのコロナと言う機会なのでいろんな開催形態を知っていきたいところ.オンラインと現地の両方で開催,なんてことが普通になるとド田舎の私にとっては,非常に参加の機会が広がって良いなと思うこの頃である.

2020年7月1日水曜日

defineのピナクルチェックのerrorですげーてこずった話

気づけば簡単なんですが,errorの原因に気づかずに時間かかったのでここで供養します.なむなむ

defineをピナクルでチェックすると以下のerrorが出ました.ほうほう参考資料が無いのねと思って確認すると,確かにdefineにリンク貼り忘れたものがあったので追加しても以下のerrorは消えなかったのです.

Pinnacle 21 ID:DD0015
Message       :Referenced Document is missing
Severity      :Error
Found         :1

何で消えないのかわからなかったのでreportのdetailを見に行くと以下の通り.
最初から見に行けと言う話は横に置いて,error箇所はdefineの最終行,valuesはnullと何のことかさっぱりです.足りない参考資料は入れたので参考資料が無いよ!のnullではないのは明らかです.

Variables:Line Number: defineのソースコードの最終行
Values   :null

正解はdefineの参考資料をリンクする際に記載するIDに誤記があったことでした.誤記していたためそんなID無いよ!ってerrorを出していたようです.
defineに参考資料をリンクする際には,最初の<def:SupplementalDoc>タグで参考資料のIDを定義して,本文中でそのIDを参照します.

正しい状態だと以下になります.leafIDが1回目と2回目でhogehogeと一致しています.
<def:SupplementalDoc>
    <def:DocumentRef leafID="hogehoge"/>
</def:SupplementalDoc>

<def:DocumentRef leafID="hogehoge">
</def:DocumentRef>

今回のerrorの原因は以下の状態になっていました.
後半で指定したpiypiyoはSupplementalDocタグで指定していないです.
<def:SupplementalDoc>
    <def:DocumentRef leafID="hogehoge"/>
</def:SupplementalDoc>

<def:DocumentRef leafID="piyopiyo">
</def:DocumentRef>

誤記をするなと言う話なのですが,末尾に1つだけerrorを返すのではなくせめて一致しないIDの数くらい教えてほしいです…今回は誤記があったのが3つだったので,最低でも3つはあったはずです…1つしかerrorはないって言われていたので,defineの中で1つしかなさそうなものからerrorの原因を探していました…

2019年11月1日金曜日

話題の食べログの話

食べログの星が3.6と3.8の間に壁がある話を聞いたので,試しにサクッとグラフにした話です.スクレイピングで星を取得してヒストグラム書いてみました.なかなか普段スクレイピングなんてやらないのでだいぶ苦戦しましたがまあ何とか形にはなりました.以下のグラフ見てもらえればわかりますが,私がやった感じだとあんまり壁みたいなのはなかった気がします.下のグラフはx軸は星数,y軸が件数ですね.軸の設定がめんどくさかったのでラベルがV_VALになっていますが,そこに各店舗の星の数が格納されています.
今回は京都のお店を対象にしています.大阪と東京では既にグラフがありますので…
星3.6と3.8で数に大きな差はありますが,グラフはそこまで不自然な形はしてない気がします.もちろんこんなものはデータの抽出の仕方次第でいくらでも結果を変えれるので,これだけを見て食べログがどうとかこうとか言うつもりはありません.特に今回は食べログの口コミ数順に上位1200件を取ってきただけです.どの順番でデータを取るかにもよりますしね.

スクレイピングの方法をありのままに書くことはちょっとよろしくない気がするのであんまり書きませんが,proc httpでwebページをテキスト化して取得→要る部分だけデータセット化→sgplotでヒストグラムです.sgplotのヒストグラムとtextステートメントが同時に使えなかったので,グラフ内の3.6とかの文字列はsgannoでやっていますがたぶん他に手はあると思います.

/*
以下が実際にグラフを書いた時のプログラムです
V_OUTに星の数が,V_ANNOにグラフ内の文字列が入っています.
*/

%sganno ;   *--アノテート使う準備;

data V_ANNO ;
   
    %SGTEXT(label="↓3.6", x1=3.6, y1=215, drawspace="DATAVALUE") ;
    %SGTEXT(label="↓3.8", x1=3.8, y1=27 , drawspace="DATAVALUE", anchor="left") ;

run ;

title "京都のお店1200件 口コミ数順" ;
proc sgplot data=V_OUT sganno=V_ANNO ;
  histogram V_VAL / scale=count nbins=40;
  
  xaxis grid
        values=(3.0 to 5.0 by 0.2)
        offsetmin=0.05
        offsetmax=0.05
  ;
  yaxis offsetmax=0.05 ;
run ;

2019年10月25日金曜日

PharmaSUG SDE Tokyo 2019に参加した話


PharmaSUG SDE tokyoに参加した.何やら台風が来ているが無事雨もなく開催となった.傘持つだけで荷物が増えるので持たないとなると荷物が減って楽である.この時は後の雨の悲劇のことなんて知らずにのんきなもんである.六本木なんてオサレタウンに来ることなどないので来るだけで面白い.テレビドラマの広告がこんなにあるなんてなかなか見られない.というか世間にはこんなにドラマがやっていたのか.
前日は簡単な準備と確認.こんなものはおまけなのでさっさと済ませて飲み会へ.私の英語力がなさ過ぎてなんとyesとthank youくらいしか言えることがなくコミュニケーションに支障しかない.すごく気を遣ってくださったのがひしひしと感じるが英語力がついていかない.結局会話の半分くらいしかわからずほうほうの体で飲み会を終えホテルに戻る.めっちゃゆっくりしゃべってくれたことと,適宜話を振ってくださったことに感謝の気持ちしかないほんとありがとうございます.
当日は早めに会場入りをする.普段会社行くより早い時間に起きるとは思いもしなかったが普段が遅すぎるだけか.当日私にできることなんて非常に限られているので隅っこのほうでバタバタと動くしかない.途中でお茶をポロリしたが決して遊んでいるわけではなく大まじめです.ドリフやってんじゃねえのになんで落ちるかな.午後からもパラパラと来場されたので受付が追い付かない部分もあったが大崩れすることもなくまあまあで終われたと思いたい.今年のノベルティはもうちょっとひねれたんじゃないかと反省するが,考えたときにはあれがbestだったので致し方ない.思う存分栓を抜いてください.来年のノベルティがどうなるかは全く未定ですが,ハードルは極めて低いと思いますので是非来年はいいものを誰か考えてくださいね.
会の後は車屋に隣接したオサレ店にて飲み会.会場近くにあんなお店あるとかやはり東京は店の数が違うと実感.ポテト一つとっても美味しかったし何より乾杯がスパークリングワイン.どうせビールと高を括っていたところに運ばれてくるワイングラスは通常の3倍くらい趣があった.いとおかし.sas社の人も参加されていたのでここぞとばかりにviyaの話を聞いてみるが,やはり会社に導入しているbaseSASを置き換えるくらいの規模感で導入しないとお値段がお値段してそうな感じか.機能を絞った相談とかもいけそうな感じがあったが,機械学習系を積まないとviyaの良さがないよなあ.guiでの操作は強いがそこだけならイマイチ感ありますあります.そして機械学習系を積むとお値段がお値段すると...飲み終わりにすげー雨に降られてびしょびしょでホテルに戻ったが今年のPharmaSUGはこれにて終了.皆様ありがとうございました.帰りの新幹線で前日準備の際に頂いたblood orangeのチョコをよばれる.やっぱりチョコのおいしさは共通だね.オレンジがほんのり効いてて甘すぎず,酒が飲めない分茶が進む進む.やっば新幹線で書いてたら気分悪くなってきた

2019年9月15日日曜日

sasユーザー会2019に行ってきました


SASユーザー会2019に行ってきた
去年の台風が思い起こされるも今年は無事晴れ,雨の無い移動はなんと楽なんだろうか.会場が例年と違って赤坂見附とわれても会場の最寄り駅までは何とかなるので大した違いがない.問題は駅から会場までの間である.東京駅から地下鉄に乗っ1本,非常にアクセスがよい赤坂見附.会場は大学のキャンパスのようだがこれがまた田舎者には気後れするほどのオサレ会場.惜しむらくは建物内にご飯食べるところがあるにも関わらず「館内イベントのため休業」せっかくのカフェテリアが泣いてるぞ.私の初日のお昼は天下一品になりました.
今年のユーザー会の目玉は何といってもods excelとマクロクォーティングか.マクロクォーティングなんて正直関数を適当に当てはめて意図通りに行ってればokみたいなとこあるので,あれだけきれいにまとまった資料を見ると浅はかな自分が悲しくなる.あんないい感じの資料を公開してくれるのはありがたい話である.
ods excelも気になる.excel2016でddeが怪しいという噂を幾つか聞くので,新しいexcel操作方法は大変気になるところ.実際に使う使わないは別にしてもしもに備えるためにも知るくらいはしといたほうが良いんじゃなかろうか.word2016でデフォルトフォントが変わったおかげでrtf出力でゴタゴタしたと思ったら今度はexcel.officeの更新は影響範囲がとても大きい.
1日目がスムーズに終わったのでホテルに帰って発表練習.日頃から30分も話すことなんてないので口が回らないがなんとか話し終えれるくらいには準備して2日目の発表に備えて早めにお休みする.当日は30分枠のうち25分ほど使って話してしまう.ちょっとギリギリまで話しすぎたせいで質問が中途半端になった.次の機会には少し控えめに構成してみようか.なにせ30分発表なぞこれまでの中でやったことがあまりないので機微がわからない.こればかりは慣れかなあ...
今年のユーザー会も無事終わって何より.来年のめどが何も立っていないが果たして来年はどうなるか,ネタがまにあうのだろうか.

2019年5月28日火曜日

SASの勉強会に行ってきた話


05月24日、早くも5回目となったsasの勉強会があった。
参加者が18人、一人5分としても発表に80分かかる計算とは恐れ入る。会場はご厚意により3時間いただいていたので余裕と思ったのが間違い。1730から初めて終わったの21時過ぎ、3時間半かかるとは夢にも思わず。2次会を8時半から抑えていたのを慌てて9時に変更するもそれでも遅刻、お店の方には大いに迷惑をかけてしまった

そろそろ参加者全員が発表するのは時間的に厳しいんじゃ、などと思うがそれだといろんな発表が聞けないジレンマ、やっぱりいろんな人のネタ聞きたいやん?どこぞのナントカRみたいに土日に一日かけてやるしかないのか,いやでもあれも結局登壇者は数少ないしなあ...
メールベースの連絡はもはや限界なので新たなツールを模索する.正直共有twitterかなんか使えば十分連絡は可能なのだがそれだとやはり面白くない.せっかくやしなんか新しいの使いたいよね.うまくいくかは知らんけど.

私の発表資料はこちらに置いています.まあ大したことない日付formatの話なのでいちいち乗せるほどでもない気がしますが...せっかくなので供養がてら置きます.swayは神アプリなのでこういう時とても便利ですね.もうちょっと工夫もできるのですが,面倒なのでそのまま書き出しどーんで終わってますが...

2019年4月7日日曜日

BBQにお呼ばれした話

bbq行ってきました.

知人にお呼ばれしてBBQへ参加しました.風の吹き抜ける川沿い,心配されていた天候も晴れで気持ちのいいBBQでした.bbqといえば終了後の網と炭の処理がとても面倒くさいですが,燃料付きのインスタントコンロのおかげでその辺の処理がはるかに楽でした.
あんな商品あるんですね...知らなかったです.燃料付きなので火おこしも着火するだけ,あのややこしい蒔組もいりません.なんと楽なんだ.

そして出てくる食べるものが多いのはもはやよくある事か.いやおいしい肉でしたよ?サイコロステーキとかカルビとか.食べてもまだ出てくる肉,飲んでも減らないドリンク.量もおいしさも大満足のBBQでした.1000mlの缶ビールなんて生まれて初めて見ましたよ私.ええ.あと名前だけ聞いたことのあったよなよなエール.あれおいしいらしいですね.

前日に激しい運動をしたせいで肩と背中と太ももが筋肉痛でしたが,とてもおいしく楽しかったです.川沿いのタワマンとか環境がすげえよ
激しい運動で消費したカロリーを一気に取り戻したBBQでした.呼んでくださってありがとうございました.

明日には筋肉痛治まってくれるといいんですが.

2019年1月24日木曜日

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

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

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

2018年9月6日木曜日

Phrma SugのSDEに行って来た話

東京でやると言うもんだから早々に行くことを決意,さっさと予約を済ませる.
しかしよく見ると受付が9:30~10:00,関西から行くにはいささか時間が早いので夜行バスで向かうとする.
結果的にここで夜行バスを選択したのが吉と出た.

迎えた当日,台風「こんにちはー」
SASユーザー総会の時も台風と一緒に東京に行った記憶がよみがえる.
すわ電車運行見送りかと震えるも私は夜行バス.前日に東京に入っていたので大した影響は受けなかった.

建物に入ればこちらのもの.恙無くSDEが始まった.
プロジェクタが何を思ったか赤を青に,青を赤に表示している所為でSASのアイコンが赤い.違和感違和感.
中国の規制当局の話が一番興味深かったが残念英語がイマイチわからない.
うーんこのと聞きつつ,英語の聞き取りは練習したほうがいいなあと実感した.
後はまあ人工な知能をpythonで実装した話の事例である.実に最近のブーム.
RでPPTへの出力,との内容も面白そうではあるがバリデーションの壁は厚く高そう.

うちの大将のポスターセッションも見てきたがやはり大将は話がうまい.
あれくらい話せるようになればなあと思うも,練習あるのみか.
いや人前で話すのは苦手なんだが

終わる頃には風が荒れる空模様だったが雨は無く,後楽園で知り合いと飲んで事故も無くホテルに引っ込む.
どうせ台風で交通機関荒れるからと一泊して本当に良かったと思いつつ12:00頃に就寝.
風が轟くもなんのその,すぐに夢の世界へとさようならし,翌日の昼過ぎに東京に別れを告げた.

自宅の隣家のブロック塀が見事に崩落している様に絶句するも,家は無事で何よりであった.
次は来年のSASユーザー総会まで何も無いかなあ,しかし東京に行くのはお金がかかって仕方が無い.
今回のSASグッズはSASのリングNOTEだった.結局もったいなくて使えずそのまま放置するんだろうなあ.

2018年8月15日水曜日

SASユーザー会行ってきました

今年もSASユーザー会行ってきました.
台風がかすっていきましたが,まあ何とか全日程が完了してよかったです.

1日目は台風とともに東京に向かうことに.
前日入りも覚悟していたところでしたが,東にそれたと聞いて当日東京に向かうことに決定.
霧雨の舞う中会場にたどり着き,荷物はびしょびしょ.
雨が風で舞う所為で傘がその機能を果たしてくれず,それはそれはぬれました.
一日目はルームDを中心に発表を聞く.
ODS TABLE,rtf作成時のfont調整等々なかなか便利そうなものばかり.
fontの調整はあの発表をそのままパクってしまおうかな...

セッションが午後のみだったのであっという間に一日目は終了,懇親会へとなだれ込む
雨の中の移動にエネルギーを思ったより使ったのか,ご飯を見るとおなかがみるみる空いてくる.
乾杯の挨拶中に食べたいものにあたりをつけ,乾杯後に早速ご飯をget
周りを見ると先輩が知り合いを連れてきて後輩が群れを成して名刺交換にいそしむ光景がちらほらありましたが,そんなものは知らぬ.おなかが空いている.

台風が明日にでも命中するとの予報だったので,2次会も無く解散しホテルへと引き上げる


2日目はもはや台風の気配など無く普通に晴れ.
全日程にわたる雨を覚悟し,折り畳みではないかさを持ってきた私は拍子抜けしました.
自分の準備が出来ていなかったので,直前のセッション中に準備をして何とか間に合わせる.
どうもやっつけな準備をしたせいか発表もやっつけに終わってしまった気がするが,終わればいいのだ終われば.

自分の発表を終えるとイマイチ気が乗り切らず,ほどほどにセッションを見てほどほどに切り上げるとする.
東大の中央食堂に乗り込むとそれはそれは綺麗で広大で自分の学生時代との差に悲しみを背負うが,
悲しみも早々に忘れてデザートをパクついて糖分を補給,悠々と会場に戻って最後のセッションを見て今年のユーザー会もお開きに.

今年のノベルティは扇子,拡大鏡,メモ帳の三択でしたが,
扇子以外にもらうものが無かったので実質一択.メモ帳もらっても...ねえ...?
しかしSASユーザー総会,椅子をですね,もう少し増やして欲しいなと思いますね.頼むわ.

会の後は知人との飲み会が新橋であるので急行し,安居酒屋でチャーハン,ジンジャーエール,モツポン酢をいただく.
ジンジャーエールはもう少し辛口のほうが私の好みであったが,所詮安居酒屋.高望みはすまい.
知り合いも変わりなくSASとは全然関係ない話に華を咲かせ,23時頃にホテルに引き上げそのままお布団へ.

9月にPharmaSUGがあるので,次はそのタイミングで東京にいくとしましょうかね.
申請やら報告書がめんどくさいので有給で行きたいが,果たして申請が通るかどうか.
通って欲しいなあ.

2018年6月24日日曜日

SAS飲み会に行ってきたお話

なにやら大層なブログタイトルになってしまいましたが.
単にネタを持ち寄りましょう,という簡単な会に6月23日に行ってきました.

18:30開始,会場が梅田となってはそこそこ早めに会社を出ないと行けません.しかしプログラム書いてると意外と遅くなり,すわ遅刻か.となりながらも退勤.会場へ急ぐ.

道中急いでいたため軽食と飲み物のことをすっかり失念しており,はたと思い至ったときには時すでに遅し,あたりにコンビニはない.これは21:30まで飲まず食わずかと覚悟を決めるが,自販機を発見しお茶を買うことには成功する.軽食は無く空腹と共に人の発表を聞くか...とがっくり肩を落としながらも引き続き会場へと急ぐ.

当日の会場がわかりにくいビルで,ビルにたどり着くまでに同じ道を行ったり来たり.この筋のはずなんだがなぁとウロウロし,なんとかビルを見つけて(なんと2度もそのビルの前を素通りしていた)建物内に入る.
なんと建物の中でも迷子になってしまい,あちこちさ迷い歩く羽目に.壁に並ぶ不審者に注意の張り紙が大変心に響いた.

ほうほうの体で会場へin.全員揃うのをまち,本日のネタお披露目が始まる.

私は今回はsgplotのオプションをいくつか紹介すると言う,目新しさのかけらもない微妙なネタを持っていきました.

私のは手垢のついたネタなのでいいのですが,classdataオプション(proc means)やweightステートメントのzeroオプション(proc freq),果てはフレームワークのようなもの(プログラムの定型部分を自動で行うなど)などと出るわ出るわ盛り沢山ですね.

classdataオプション,存在は知っていましたが使ったことなかったですねー.いっつもダミーデータをmergeしてましたね...一度使ってみましょう.

次は忘年会のシーズンに集まる感じですかね.またその時はどんなネタが出てくるか,今から楽しみです.

最後になりましたが,来てくださった皆様,これなかった皆様,ありがとうございました.