log メッセージ対処ヒント、attarmap を使っていて “Termination due to Floating Point…”

またおもしろい状態が発生しました。
#1: figureに関して”個別xxx図のときは症例毎にsymbolをユニークにしてください”というオーダーがきました。
これはまぁ、あるある、な依頼ですね。
大規模臨床試験でしたら、”そもそもsasのsymbolの種類数にキャパがありますので、これができるのは限定した状態ですよ、、いつもできるとは限りませんからね!”、とはなかなか派遣プログラマはいえません。
依頼者側が”今回の試験は例数が少ないので、、この処理できるよね、やって!”っていえば、スマートだと思います。

#2:
で、、どうやるかを考えた時、styleattrsだとなんか、ズレそうなきがして、より安心できるattarmap を使って、症例毎にmarkerなどを割り当てることにしました。
#3:
attarmapデータセットがつくり終わり、いざsgplotしたら(私はsgrenderはできません!!)SAS logが”Termination due to Floating Point…”云々かんぬんをいってきました。
#4:
しかも,sgplotにいれたデータセットは相当数のオブザベーションがあるのに、ログには”1 obs”云々が書いてある。
こわいなー、どういうこと?と思いました。

原因:
sgplotに、attarmapに、行はあるものの、marker等を定義していない症例のデータがあったことが原因でした。しかるべき値(linesizeだのなんだの。なにが必須変数かはわかりませんが。。)を定義してやったら、このログは消えました。
ログが1 obs云々いったのも、attarmap側で症例を定義しているオブザベーション数は当然ユニークに1なので、そのオブザベーション数を吐き出したものと推測されます。

以上です。
まだattarmapを使うのはそんなにはメジャーではないと思っていますが、一助になれば幸いです。
(”いやいやなにいっているの、うちではattarmap使いまくりだよ”、と思われた方、素晴らしい組織に属されていると思います。)

医薬SASプログラマの皆様、年内残り、お正月の長期のお休みに入る前に解析担当者が休み始める中も休めず、ぎりぎりまで業務大変だと思われますが、お互いがんばりましょう。。。

sas sgplotでtickの表示非表示をコントロールしたい。→諦めた。個別推移図のとき。

figureつくったあと、レビュワーさんから、”●●のヒゲ線、、ださないで”、ってたまにいわれます。
特に水平軸で、x軸より前のとこ。
これは、sgplotでは無理、と判断しました。

data test;
TRT01PN=1;PARAMCD =”PARAMCDx”;ADY=-1;AVAL = 0.3;
TRT01PN=1;PARAMCD =”PARAMCDx”;ADY=1;AVAL = 3;
TRT01PN=1;PARAMCD =”PARAMCDx”;ADY=2;AVAL = 4;
TRT01PN=1;PARAMCD =”PARAMCDx”;ADY=3;AVAL = 5;
run;

こんなデータの症例毎のspaghetti plotをだしたい。
ADY=-1のとこのtickのlabelはTICKVALUEFORMATで消したけど、ヒゲ線も消してくれ、といわれた。
tick labelを消すのは
proc format
-1 = ” ”
2 = “2”
とかで、-1を消します。
でも、ヒゲ線は描画されちゃいます。

sgrenderはできるだろうことは、少しは知っているけど。
あんま今までsgrenderつかったことない。
、、、またイチから諸々書くので嫌だという方、、
sgplotのtmploutオプションにて、proc sgrender化してくれます。
それでできたproc templateの中身をちょいちょいかえ、その中で、viewmin=0とすれば、ADY=-1のオブザベーションを描画してくれるし、かつ、x軸の-1とこのwhisker線も描画されません。

以上、簡単な説明ですいませんが。
医薬SASプログラマさんだったらあとは”sgplot tmplout”などで検索してもらえれば、諸々理解して頂けるかと。

とにかく、私はsgplotのあれやこれやで、ヒゲセンのコントロールは諦めました、、というお話でした。

医薬SAS プログラマに未来はあるか。

なんか大仰なタイトル(title; ???)になってしまいましたが。
なんかなー
ほんと私がこの業界に入らせて頂いた2010年代前半から、業界はあんまりかわってないなーって、たまに思う。
時系列的に
業界デビュー→CDISC云々が声高くいわれてきた→CDISC申請しなきゃだめな時代
とか、業界の周辺はかわってきたけど。

他業種の友人に自分の業界ってどんなとこ?といわれたらこう答えるかな。
(つまり、ぶっちゃけていうと。)

あ、あともうひと段階具体的にいうと
”DM系医薬SASプログラマ”ではなく”統計系・ADaM系医薬SASプログラマ”のハナシです。

わが業種のイメージ
・CDISCうんぬんの知識を高めてね!!!そうじゃなきゃ今後だめだからね!!といわれるが、、、別に、そうでもないんじゃないかなー、って感じ。(それ以前に大きな問題があるきがする)
・病んでる人が多い
・雇用形態が非正規雇用の割合が多い。
・賃金は悪くはなく、よくもなく、、だけど、多分悪い。→非医薬系IT職にくらべれば感謝しなきゃいけないのは、なんとなく理解しているつもり。
・仕様書ブッチが多い。(仕様書に書いていない仕様にて、ダブルプログラミングが完結した状態であること。)
・自分の命運、働きやすさだとかは解析担当者次第である。
・職場で寝ている人がSAS プログラマより、それを率いる解析担当者であることが多い。
これってなー。クルマ業界で例えると
●ヨタの社員ってクルマの組立工場で工員の前で寝てんのかな????多分社員さんは色々お仕事してるんだろうなって思う。
だからこそ世界で勝っているんだろうから。。

久しぶりの更新はこんなとこで。。

世界とトップの勝負している業界(自動車)と製薬業界をくらべる??

さて、、少し過激なタイトルになっちゃいましたが、、、いつか、くらべてみようと思います。
我々の業界を。
あくまで例えです。
(お薬は健康に関するものなので、車とは単純に比較できない点は承知しております。
ヘンな例え、と思った方はすぐ他のページへジャンプ頂いた方がお互いのためかと思います。)

新薬⇔新発売?の車
SASプログラマ⇔車の組立工場の工員
製薬メーカー・解析担当者⇔自動車メーカーの開発部社員
CDISCルール⇔全世界の自動車業界のルール(あるかどうかは別として。)

という比喩で、考察してみたいと思います。
ただ、お薬も自動車も、低品質なものをつくると人の命に関わる、という点で意外と類似点も多いのかも、とは思いました。
それでは。また更新までしばらくかかるかもしれないけど。。

解析ビジット(AVISIT/AVISITN)をsapに明瞭に書くべし、というガイド

analysisビジット・解析ビジット(AVISIT/AVISITN)をsapに明瞭に書くべし、というガイドが掲載された資料を探し中です。
FDA or PMDAドメイン内で発見できればベストだけど。。
ガイドではなくとも、一部のCSRを公開してくれているGSKさん(link)のsapではどう解析ビジットが解析計画書に書かれているか、時間があればみてみようと思います。

ADaMの話。defineの登場で旧来型のEXCEL仕様書なくなるの??

ADaMに関してdefine.xmlを要作成な昨今ですが、、
それによりなんか、EXCELでのADaM spec、、そう、基本的に1シート、1データセットのあれ、がなくなろうとしつつある潮流を感じる。

”define.xmlないし、それをPinnacle 21にいれるためのEXCELがあるから、それみてね。今後は今まで使っていた仕様書はナシだよー”
っていう。。。

い、、いーーーーーーーーーーーーーーーーーーーの?
データセットつくるときの書類としての見やすさとか全然違うけど。。

”EXCELでのスペックもあって、defineもつくるってなるど2度手間になるから、defineだけ”
で、いーーーーーーーーーーーーーーーーーーーの?

sas programmer職に相対的に、業務にモノ申せる立場の人、例えば正社員の人とかが少ないので、、
こうなるんだろうなー。

そりゃ、お客さん≒製薬会社からそういわれれば、croとしてはそうするんだろうけど。

“データセットのdefine”と”データセット作成の仕様書”って違う気がするけど。

define対象外の薬理解析用データセット?とかつくる人達 = 旧来通りのEXCELspecがある環境が素敵に思えます。

sas on demand ログインできない ,PWあってるのに→license agreementを要更新

久しぶりにsas on demandにログインしようとしたら、ログインできませんでした。
パスワードリセットしても入れない。
あれーー、おかしいな、と思ったら、sas on demandユーザーは年に1回?ぐらいの頻度で、licence agreementをしなければならないようで、それをしていなかったから、のようです。その手続きを済ませたらログインできました。

どこでこの情報を知ったか:サインイン画面下部の”Commonly Asked Questions”→このページ中の”If you have reset your password and are still unable to sign on, you can sign on to the Registration application and update your license agreement. After that, you can try to sign on again.”より。

実際のSAS社のHPでは、この英文中の”Registration”のところにhyperlinkが貼られており、そのジャンプ先の
https://odamid.oda.sas.com/SASODARegistration
にてlicence更新をお済ませください。

さて、また少しづつ当ブログ、また更新していくよう頑張ります。

sas データセット 開いているか 確認したい→これもopen関数

ふと疑問が生じました。
疑問が発生した状況:
えてして業務でてんぱっているとき。
DATAステップを実行
→データセットを開いてみる(仮称:work.x)
→も一回、ちょいちょいプログラムを変更して実行
→”VIEWTABLE: work.X”という文言がタイトルバーにあるwindowを閉じるの忘れてた
→英語版sasなら”member-level control”云々、日本語sasなら”メンバーレベル制御の 出力アクセス”云々のERRORがでる。

これを回避すべく、データセットwork.xが開いているかを事前に調べたい。。

これは、open関数でできました。
Open関数の戻り値で、対象データセットの状態を検出できました。
open関数=データセットを開くための関数、というのは知っていたけど、、確かにこれでできますね。

sas社日本語ページ
”prices”でこのページを検索してみてください。おいしい部分(プログラムのサンプル)に画面遷移するはずです。
link
http://support.sas.com/documentation/cdl_alternate/ja/lefunctionsref/67960/HTML/default/n0q72zlfmfjplon1p3nprf85sdin.htm

秋だー、これから年末まで、stat programmerさん皆、●ソ忙しいのではないでしょうか。。。お互いがんばりましょー

レガシーデータコンバージョンと実務担当者のためのワークショップ

業務で最近、ひ、疲弊してます。。
”タフさ”が要求される職種だとはわかりつつも。
でも労働環境の状況が改善される見込みがなければ、疲弊度も増すってもんです。。
当方、”ヤング世代”とも違うので。

さてさて、、実務担当者のためのワークショップ、今週開催されたわけですが。
サイトURL
https://www.pmda.go.jp/review-services/reexamine-reevaluate/symposia/0038.html

その当日配布資料をみました。
レガシーデータコンバージョンの経験の発表があったようで。
同僚の方々もその発表に興味津々でした。

なにより、、その発表をする会社も、”今度弊社社員が当トピックについて発表しますよー”とのアナウンスをされていて。
サイトURL
http://www.a2healthcare.com/ja/news/2016/08/503.html

統計解析部と広報部のリレーションがスムーズだなんて、すごいんじゃないでしょうか。

あといま、URLを探すためにこの会社さんのHPうろうろしてたら、、たまたま昨日で、BMSさんと一部の事業を合併?されるみたいで(CRO事業統合、とのこと。)、、今後要チェックなCROさんではないでしょうか。

そんなことを疲弊した状態の業務中、思ったのでした。。