OL、SEになる!おぼえがき★

関西人OL。SEの技術力獲得のためのおぼえがきまとめです!

SAS 基礎 縦結合(set), 横結合(merge)

 

Base sasの基本であるdataステップでよく使われる結合に関しての覚え書きです。

縦結合(set)は縦積みに、横結合(merge)は横方向に結合する処理構文です。

 

◎縦結合(set)

★基本構文★

f:id:omihosam:20161213211147p:plain

★オプション★

f:id:omihosam:20161213211419p:plain

 

 ・sample1

f:id:omihosam:20161213225532p:plain

 ・sample2

f:id:omihosam:20161213225539p:plain

 

これらのデータセットを単純に結合すると、単純に縦積みしたデータセットができます。

f:id:omihosam:20161213224306p:plain

 ・test1

f:id:omihosam:20161213225556p:plain

 

本当にそのまま単純に縦積みで結合するので 「ichiro」という同じデータが重複していますが、削除されずそのまま縦に結合されます。

多くの場合はオプションつきで構文を使います。

 

◎「keep」を使うパターン

指定した変数のみを保持したい場合に使います。

f:id:omihosam:20161213224716p:plain

 ・test2

f:id:omihosam:20161213225610p:plain

 

 ◎「drop」を使うパターン

 dropで指定した変数が削除されます(保持しない)

f:id:omihosam:20161213224845p:plain

・test3

f:id:omihosam:20161213225619p:plain

 

 ◎「where」を使うパターン

条件を満たすもののみ保持(残りは削除)

f:id:omihosam:20161213225636p:plain

・test4

f:id:omihosam:20161213225718p:plain

 

 ◎「if」を使うパターン

whereと同様 条件を満たすもののみ保持。

f:id:omihosam:20161213230115p:plain

・test5

f:id:omihosam:20161213230135p:plain

 

◎横結合(merge)

★基本構文★

f:id:omihosam:20161214002315p:plain

★オプション★

f:id:omihosam:20161213211419p:plain

 

 ・sample3

f:id:omihosam:20161213225532p:plain

 ・sample4

f:id:omihosam:20161214002537p:plain

  ・sample5

f:id:omihosam:20161214003329p:plain

mergeを使う上で必ず必要となってくることは、

結合するkeyでsortしておく必要があるということです。

 

 sample3とsample4を単純に結合すると。。

f:id:omihosam:20161214003847p:plain

・test11

f:id:omihosam:20161214002921p:plain

このように結合します。情報がない部分はNull(欠損値)となります。

 

次に、sample3とsample5をキー二つで結合してみます。

f:id:omihosam:20161214003810p:plain

・test12

f:id:omihosam:20161214003340p:plain

このようにキーがすべて一致したものはすべての列に値が入ります。

オプションはset同様絞り込みや条件付きで結合する場合に使用します。