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

徒然なるままにSAS暮らし

----

スポンサーサイト  

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

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

CM: --
TB: --

0128

SQLプロシジャのInto句による複数列・複数行のマクロ変数への取り込み   

何かと便利なSQLプロシジャのINTO句ですが、複数列・複数行のデータをまとめてマクロ変数に格納する方法をメモしておきます。医薬品開発では、投与群の例数を格納しておいて、パーセント算出時の分母として使用する際なんかに便利かと思います。

まずはデータを作成します。
*** 被験者IDと投与群のみのデータ作成 ;
data ADSL_DUM ;
do I = 1 to 10 ;
SUBJID = put(I,Z3.) ;
TRT01AN = rantbl(1000,1/2,1/2) ;
output ;
end ;
drop I ;
run ;

作成されたデータセットは以下になります。
SQL_Into

続いてINTO句で各投与群のコードと例数を格納します。ハイフン「-」で各オブザベーション、カンマ「,」で各列を区別してそれぞれのマクロ変数に格納します。各オブザベーションの値をマクロ変数に格納する場合は、変数名の最後の数字を連番にしたマクロ変数名で作成しておく必要があります。
*** Into句による投与群と例数の複数列のマクロ変数への取り込み ;
proc sql noprint ;
select TRT01AN, count(distinct SUBJID) into: _G1-:_G2, :_N1-:_N2
from ADSL_DUM group by TRT01AN ;
quit ;
*** マクロ変数の確認 ;
%put *** &_G1: &_N1 *** ;
%put *** &_G2: &_N2 *** ;

%putステートメントの結果は以下になります。
SQL_Into_2.png

各投与群のコードと例数が格納されていることが確認できます。INTO句はこの他にも様々な場面で活躍してくれますのでこれからもどんどん使いたいと思います。

スポンサーサイト

Posted on 2014/01/28 Tue. 23:57 [edit]

CM: 0
TB: 0

プロフィール

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

訪れた人

▲Page top

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