SAS中文论坛

标题: 关于数据的纵向合并 [打印本页]

作者: shiyiming    时间: 2010-1-5 16:36
标题: 关于数据的纵向合并
我有两组数据,如下
data a;
input g x@@;
cards;
1 20
2 30
run;
data b;
input g x@@;
cards;
1 20
3 50
run;

现在想数据b追加到a上,但重复的记录不追加上去。也就是说最后生成的数据为
g   x
1 20
2 30
3 50

请高手帮忙解答,谢谢
作者: shiyiming    时间: 2010-1-5 17:17
标题: Re: 关于数据的纵向合并
[code:2s5oarq0]data a;
        input g x;
cards;
1 20
2 30
;

data b;
        input g x;
cards;
1 20
3 50
;

proc sql;
        create table c as
                select * from a
                union
                select * from b;
quit; [/code:2s5oarq0]
作者: shiyiming    时间: 2010-1-8 20:52
标题: Re: 关于数据的纵向合并
data a;
input g x@@;
cards;
1 20
2 30
run;
data b;
input g x@@;
cards;
1 20
3 50
run;
proc append base=a data=b;
run;
proc sort data=a out=new nodupkey;
by g;
run;
在SORT 过程后面添加个选项 nodupkey 搞定
作者: shiyiming    时间: 2010-1-12 11:58
标题: Re: 关于数据的纵向合并
如果你的数据集A也没有重复键的话,那可以考虑使用UPDATE合并,不过B数据集中的非缺失值会覆盖数据集A当中的值




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2