SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 642|回复: 3
打印 上一主题 下一主题

关于数据的纵向合并

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2010-1-5 16:36:18 | 只看该作者

关于数据的纵向合并

我有两组数据,如下
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

请高手帮忙解答,谢谢
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2010-1-5 17:17:42 | 只看该作者

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]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2010-1-8 20:52:24 | 只看该作者

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 搞定
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2010-1-12 11:58:57 | 只看该作者

Re: 关于数据的纵向合并

如果你的数据集A也没有重复键的话,那可以考虑使用UPDATE合并,不过B数据集中的非缺失值会覆盖数据集A当中的值
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-6 08:06 , Processed in 0.069814 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表