1.1K Views
April 04, 24
スライド概要
[第7回大阪sas勉強会]淺井 友紀
SAS言語を中心として,解析業務担当者・プログラマなのコミュニティを活性化したいです
SGPLOTでSwimmerPlot 或いは作図のためにADEVENT作ってくれとの話 ごめんなさいGTLは未対応です
こういうやつです(n=2)
こういうやつです 棒グラフ ・生存は矢印 ・死亡は□ 被験者IDの表示 (要らなかったら yaxisで消す) 画像診断の結果 を矢印にプロッ ト(SDは除く) プロットの凡例
用意するデータセット • PARAMに出来事の種類,AVALに具体的な内容,ASTDTにイベ ントが発生した日付を格納
ちょっと加工 • 棒グラフ内にplotするレコードだけ残す(今回は画像診断) • 棒グラフの最初と最後の日数を変数化する • 最初:V_STDUR(投与開始日なので0) / 最後:V_ENDUR(投与開始日 からの期間) • 棒グラフを末尾を矢印にするところだけFILLEDARROWを格納 した変数を作る • V_CAP
SGPLOT内の説明 横棒グラフ部分 highlow y = ID(Y軸の変数) high = V_ENDUR(棒グラフの終わり) low = V_STDUR(棒グラフの始まり) / type = bar highcap = V_CAP (棒グラフの末尾を決める変数) barwidth=1 (棒の太さ) lineattrs = (color = black) (棒の縁取りの色) ;
SGPLOT内の説明 棒内のplot(dataのレコードごとにプロットする) scatter x = ADY y = ID / group = V_SEQ (画像診断の結果ごとにマークを変える) grouporder = ascending (V_SEQの値が小さい順にsgplotに読み込ませる) ; legenditem type = marker name = "CR" / label="Complete response" markerattrs = graphdata1 ; (graphdata1,つまり最も小さいV_ESQのデータをCRと定義して マークの凡例を表示)
SGPLOT内の説明 keylegend "CR" "PR" "PD" "NE" / location = inside position = bottomright across = 1; Legenditemで定義した画像診断の凡例をグラフ内の右下に縦一 列で表示する
完成版(再掲)
棒グラフの色を変えたいとき styleattrs datasymbols=(circlefilled squarefilled trianglefilled asterisk) datacontrastcolors=(red red black black ) datacolors = (lightblue lightgreen) ; Datacolorsに色を指定する. Symbolとcontrastcolorsは画像診断のplotに使用している
棒グラフの色を変えたいとき highlow y = ID high = V_ENDUR low = V_STDUR / type = bar highcap = V_CAP barwidth=1 group = HISTCL lineattrs = (color = black) name = “HLC” (凡例表示用の名前指定) ; Groupオプションに色を区別する変数を指定する
棒を長い順に並べたいとき • Sgplotに読み込ませるデータセットをソートする
ところでこのデータセットに見おぼえな いですか • 患者ごとに,患者に起きた出来事を,日付順に格納するBDSタ イプのデータセット → ADEVENT
ADEVENT • 実際の生存時間解析のデータセットを作る前に,生存時間解析 で使用する日付を一つのデータセットに集める • 最終生存確認日,画像診断の結果と日付,投与開始日,後治療開始日 … • OSやらPFSがあってるかを確認するときに,とにかく ADEVENTを振り返ればokにするのが理想 • ADTTEの形にすると期間しかないので,その期間が妥当かが分からな い(よくわからんけどコンペア一致したけど期間おかしいです.とか最 悪) • ADSL,TR,FA,ADRS等色んなデータセットを参照するのが煩雑
今回のデータのID=Aを例にして PARAM AVAL ASTDT ANLFL(OS) ANLFL(PFS) 投与開始 TREATMENT 2021/04/01 Y Y 画像診断 PR 2021/04/03 画像診断 PR 2021/04/05 画像診断 SD 2021/04/07 画像診断 PD 2021/04/10 イベント AFTER TREATMENT 2021/04/14 イベント DEATH 2021/04/26 Y Y 期間の開始と終了がフラグによりわかる.何によって終了したかはAVALを見ればわかる 打ち切りで終了したか,イベントで終了したかもAVALを見ればok OSはANLFL(OS)=Yの2レコードのASTDTの間の期間 PFSはANLFL(PFS)=Yの2レコードのASTDTの間の期間 もちろん間のレコードをYで埋めても良い(specの書きやすさ次第でいいのでは?)
SwimmerPlotのプログラム