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

徒然なるままにSAS暮らし

0129

SQLプロシジャのcount distinctでユニークなオブザベーション数をカウントする  

前回のメモでINTO句の紹介をしましたが、そこで使ったcount関数についてもメモしておきます。count(distinct 変数)で、指定された変数のユニークなオブザベーション数をカウントしてくれます。これは非常に便利で、被験者ごとに複数レコードを持つ場合に各投与群の例数をカウントする際などに威力を発揮します。SQLを使用しない場合は、SORTプロシジャのnodupkeyで重複レコードを削除した後にMEANSプロシジャ等で結果をデータセットに吐き出すといった面倒なステップを踏むことになりますが、この機能を使用するとわずか一行で処理が終わってしまいます。

IDが重複するレコードを持つデータセットを作成して各投与群の例数をカウントします。
*** 被験者IDと投与群のみのデータ作成 ;
data DUP ;
do I = 1 to 5 ;
SUBJID = put(I,Z3.) ;
TRT01AN = rantbl(1000,1/2,1/2) ;
output ; output ;
end ;
drop I ;
run ;
*** count distinctでユニークなオブザベーション数をカウントする ;
proc sql ;
select TRT01AN, count(distinct SUBJID) as _N from DUP group by TRT01AN ;
quit ;

データセットと結果は以下になります。1群目が2例、2群目が3例となり、正しく計算されています。
SQL_count_distinct2.png
SQL_count_distinct_result.png
スポンサーサイト

Posted on 2014/01/29 Wed. 00:24 [edit]

CM: 0
TB: 0

プロフィール

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

訪れた人

▲Page top