【問題】data1、data2からdata3を作成する。
/*---------------*
data create
*---------------*/
data data1;
length id 8 ae1 $3;
do id=1 to 2;
ae1="A"; output;
ae1="B"; output;
end;
run;
data data2;
infile cards;
length id 8 ae2 $3;
input id ae2;
cards;
1 X
2 X
2 Y
2 Z
3 X
;
run;
/*--------------------*
merge (SQL)
*-------------------*/
proc sql;
create table data3 as
select a.* ,
b.ae2
from data1 as a full join data2 as b
on a.id = b.id
;
quit;
* data2(b)にしかidがない場合、id変数が欠測になってしまうので何か対策が必要(>_<) *;
/*--------------------*
merge
*--------------------*/
proc transpose data=data1 out=data11;
var ae1;
by id;
run;
data data12;
merge data11(in=in1)
data2;
by id;
keep id ae1 ae2;
array a_var[*] col:;
if in1 then do;
do i= 1 to dim(a_var);
if a_var(i) ne "" then do;
ae1=a_var(i);
output;
end;
end;
end;
else do;
output;
end;
run;
最終更新:2008年10月13日 00:06