楼主: huangpengfei
2163 0

merge和proc sql进行数据拼接的区别: [推广有奖]

  • 1关注
  • 1粉丝

博士生

7%

还不是VIP/贵宾

-

威望
0
论坛币
344 个
通用积分
0.0004
学术水平
7 点
热心指数
10 点
信用等级
5 点
经验
2026 点
帖子
122
精华
0
在线时间
281 小时
注册时间
2008-3-2
最后登录
2017-5-8

楼主
huangpengfei 发表于 2014-1-21 00:01:01 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

个人总结了一下mergeproc sql进行数据拼接的区别,请大家看后多多指教交流。

设拼接第一张表为A和第二张为B

拼接方式:

1、    merge是对不同数据集所有观测进行拼接;proc sql可以是inner 、left join、rightjoin和full join四种方式拼接方式。

2、    inner是拼接数据集中的交集;

3、    leftjoin是第一张表所有观测+第二张表中基于条件匹配的观测形成同一观测;

4、    rightjoin是第二张表所有观测+第一张表中基于条件匹配的观测形成同一观测;

5、    fulljoin是第一张表所有观测+第二张表所有观测(基于条件匹配的观测为同一观测);

变量名:

1、 proc sql拼接时变量名是否一致不影响匹配结果;

2、 merge拼接时变量名不一致,产生结果不一致:

a)  有相同变量名,B表中与A表中变量名相同的列观测被B替换,若A>B,则结果中包括A中相同变量未被替换部分;若A<B,则结果中相同变量观测值仅为B观测值;观测数是大小为A和B观测数的最大值;

b)  无相同变量名,则仅是将B表水平放在A表后

c)  使用BY语句时,需要对A和B进行排序。

观测值有重复:

1、 merge生成结果中,有重复的观测值为相同变量中观测值最大的数量,若A中匹配变量的观测值有2个重复值,B中有3个,则生成结果中重复变量的观测值为3;

2、 proc sql则是依据条件进行笛卡尔计算,若A中匹配变量的观测值有2个重复值,B中有3个,则生成结果中重复变量的观测值为9。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:proc sql Merge ROC sql left join inner 拼接 影响

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

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2026-1-3 17:55