今回はSETについて解説します。
/* 1~7 */
data data1;
Id1=1111; Char1="AAAA";
output;
Id1=2222; Char1="BBBB";
output;
Id1=3333; Char1="CCCC";
output;
Id1=4444; Char1="DDDD";
output;
run;
data data2;
Id1=5555; Char1="EEEE";
output;
Id1=6666; Char1="FFFF";
output;
Id1=7777; Char1="GGGG";
output;
run;
data data3;
set data1 data2;
run;



- SETステートメントに複数データセットを設定すると縦に結合する。
/* 1~4 1~4 */
data data1;
Id1=1111; Char1="AAAA";
output;
Id1=2222; Char1="BBBB";
output;
Id1=3333; Char1="CCCC";
output;
Id1=4444; Char1="DDDD";
output;
run;
data data2;
Id1=1111; Char1="AAAA";
output;
Id1=2222; Char1="BBBB";
output;
Id1=3333; Char1="CCCC";
output;
Id1=4444; Char1="DDDD";
output;
run;
data data3;
set data1 data2;
run;



- SETステートメントに複数データセットを設定すると縦に結合する。
- 一致する値が有っても機械的に縦に結合する。(mergeではない点に注意)
/* char1 char2 */
data data1;
Id1=1111; Char1="AAAA";
output;
Id1=2222; Char1="BBBB";
output;
Id1=3333; Char1="CCCC";
output;
Id1=4444; Char1="DDDD";
output;
run;
data data2;
Id1=5555; Char2="EEEE";
output;
Id1=6666; Char2="FFFF";
output;
Id1=7777; Char2="GGGG";
output;
run;
data data3;
set data1 data2;
run;



- SETステートメントに複数データセットを設定すると縦に結合する。
- 片方のテーブルにしか存在しない変数は両方採用される。
/* Id1 Char1 Id2 Char2 */
data data1;
Id1=1111; Char1="AAAA";
output;
Id1=2222; Char1="BBBB";
output;
Id1=3333; Char1="CCCC";
output;
Id1=4444; Char1="DDDD";
output;
run;
data data2;
Id2=5555; Char2="EEEE";
output;
Id2=6666; Char2="FFFF";
output;
Id2=7777; Char2="GGGG";
output;
run;
data WORK.data3;
set data1 data2;
run;



- SETステートメントに複数データセットを設定すると縦に結合する。
- 片方のテーブルにしか存在しない変数は両方採用される。
/* 1~7 by */
data data1;
Id1=1111; Char1="AAAA";
output;
Id1=2222; Char1="BBBB";
output;
Id1=3333; Char1="CCCC";
output;
Id1=4444; Char1="DDDD";
output;
run;
data data2;
Id1=5555; Char1="EEEE";
output;
Id1=6666; Char1="FFFF";
output;
Id1=7777; Char1="GGGG";
output;
run;
data WORK.data3;
set data1 data2;
by Id1;
run;



- SETステートメントに複数データセットを設定すると縦に結合する。
- byに指定した変数に従ってレコードを並び替える。
/* 1~4 1~4 by */
data data1;
Id1=1111; Char1="AAAA";
output;
Id1=2222; Char1="BBBB";
output;
Id1=3333; Char1="CCCC";
output;
Id1=4444; Char1="DDDD";
output;
run;
data data2;
Id1=1111; Char1="AAAA";
output;
Id1=2222; Char1="BBBB";
output;
Id1=3333; Char1="CCCC";
output;
Id1=4444; Char1="DDDD";
output;
run;
data WORK.data3;
set data1 data2;
by Id1;
run;



- SETステートメントに複数データセットを設定すると縦に結合する。
- 一致する値が有っても縦に結合する。(mergeではない点に注意)
- byに指定した変数に従ってレコードを並び替える。
/* char1 char2 by */
data data1;
Id1=1111; Char1="AAAA";
output;
Id1=2222; Char1="BBBB";
output;
Id1=3333; Char1="CCCC";
output;
Id1=4444; Char1="DDDD";
output;
run;
data data2;
Id1=5555; Char2="EEEE";
output;
Id1=6666; Char2="FFFF";
output;
Id1=7777; Char2="GGGG";
output;
run;
data WORK.data3;
set data1 data2;
by Id1;
run;



- SETステートメントに複数データセットを設定すると縦に結合する。
- 片方のテーブルにしか存在しない変数は両方採用される。
- byに指定した変数に従ってレコードを並び替える。
/* Id1 Char1 Id2 Char2 by */
data data1;
Id1=1111; Char1="AAAA";
output;
Id1=2222; Char1="BBBB";
output;
Id1=3333; Char1="CCCC";
output;
Id1=4444; Char1="DDDD";
output;
run;
data data2;
Id2=5555; Char2="EEEE";
output;
Id2=6666; Char2="FFFF";
output;
Id2=7777; Char2="GGGG";
output;
run;
data WORK.data3;
set data1 data2;
by Id1;
run;



- SETステートメントに複数データセットを設定すると縦に結合する。
- 片方のテーブルにしか存在しない変数は両方採用される。
- byに指定した変数に従ってレコードを並び替える。
- byに指定した変数が入力データセットに存在しないとエラーとなる。
/*型違い*/
data data1;
Id1=1111; Char1="AAAA";
output;
Id1=2222; Char1="BBBB";
output;
Id1=3333; Char1="CCCC";
output;
Id1=4444; Char1="DDDD";
output;
run;
data data2;
Id1="eeee"; Char1="EEEE";
output;
Id1="ffff"; Char1="FFFF";
output;
Id1="gggg"; Char1="GGGG";
output;
run;
data data3;
set data1 data2;
run;



- SETステートメントに複数データセットを設定すると縦に結合する。
- 同じ名前の変数が型違いで入力データセットに含まれているとエラーとなる。