僕の頁 <SASと臨床試験と雑談と>

徒然なるままにSAS暮らし

----

スポンサーサイト  

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Posted on --/--/-- --. --:-- [edit]

CM: --
TB: --

0802

axistableステートメント(グラフと表の同時出力)  

レポートを作成する際、グラフと要約表を同じページに出力したい場合がありますが、9.4から追加されたaxistableステートメントがあれば、簡単に実現できます。もちろんODS Layout等を使用すればさらに高品質なレポートが出力できますが、手軽に出力する方法として紹介したいと思います。SGPLOTプロシジャの中で、横軸に出力する場合はxaxistableステートメント、縦軸の場合はyaxistableステートメントを使用します。例えば、平均値を出力する場合はstat=mean、内側に出力する場合はlocation=insideと指定します。
xaxistable VAL / stat     = mean
location = outside ;


以下の例では、継時的に得られたデータを作成し、xaxistableステートメントでグラフ内に平均値を出力しています。
*** フォーマットとテストデータ ;
proc format ;
value TRTF 1 = "Placebo" 2 = "Active 1" 3 = "Active 2" ;
value VITF 1 = "Baseline" 2 = "Week 1" 3 = "Week 2" 4 = "Week 3" 5 = "Week 4" ;
run ;
data _TEST ;
call streaminit(100) ;
do ID = 1 to 90 ;
GRP = rand("table",1/3,1/3,1/3) ; *--- 投与群 ;
do VISIT = 1 to 5 ;
*--- VISITごとのテストデータ生成 ;
VAL = rand("normal",10+(VISIT>1)*GRP+(VISIT>1)*0.5*GRP*VISIT,5) ;
output ;
end ;
end ;
format GRP TRTF. VISIT VITF. ;
run ;

*** with axistable ;
proc sgplot data=_TEST ;
*--- 投与群ごとの属性を指定 ;
styleattrs
datacolors=(blue red green)
datalinepatterns=(1 2 3)
datasymbols=(circlefilled trianglefilled diamondfilled) ;
vline VISIT / response = VAL
group = GRP
groupdisplay = cluster
stat = mean
limitstat = stddev
limits = both
markers ;
xaxis type = discrete display = (nolabel) ;
yaxis label = "Mean" ;
*--- グラフエリアに表を出力 ;
xaxistable VAL / separator
stat = mean
location = inside ;

run ;


結果は以下になります。私の環境は9.4M1ですが、どんどんオプションが追加されているようですね。
Mean_Plot_inside.png

ちなみに、「location=outside」とすると、結果は以下になります。
Mean_Plot_outside.png

スポンサーサイト

Posted on 2015/08/02 Sun. 18:46 [edit]

CM: 0
TB: 0

プロフィール

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

訪れた人

▲Page top

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。