fjhzxk 发表于 2010-5-31 23:55 
一共两个数据集a 和 b,
a:共3个变量
dn time age
1 2009-01-01 .
2 . 18
3 2009-02-01 .
4 21
5 2009-03-01 20
b:共4个变量
dn time age sex
1 . 17 男
2 2009-02-01 . 女
6 2009-05-01 19 女
7 2009-04-01 . 女
8 2009-06-01 20 男
想要生成一个新的数据集c:(即相同的变量保留,不同的变量合并)
dn time age sex
1 2009-01-01 17 男
2 2009-02-01 18 女
3 2009-02-01 .
4 21
5 2009-03-01 20
6 2009-05-01 19 女
7 2009-04-01 . 女
8 2009-06-01 20 男
相当于2个数据集中都没有的dn号直接merge,而相同的dn号则如果A内为空则用B内的数据updata。
这只是举个小例子,实际我碰到的情况是2个数据集内变量都特别多。
望高手指教,谢谢!
You can use a update statement as showed in below.
data a;
input dn : time : yymmdd10. age ;
format time date9.;
cards;
1 2009-01-01 .
2 . 18
3 2009-02-01 .
4 . 21
5 2009-03-01 20
;
data b;
input dn : time : yymmdd10. age : sex : $1.;
format time date9.;
cards;
1 . 17 M
2 2009-02-01 . F
6 2009-05-01 19 F
7 2009-04-01 . F
8 2009-06-01 20 M
;
data a;
update a b;
by dn;
run;
proc print; run;