楼主: 飞奔的小龟
6400 7

[问答] 求助各位高手,SAS merge时出现问题 [推广有奖]

  • 0关注
  • 0粉丝

高中生

55%

还不是VIP/贵宾

-

威望
0
论坛币
201 个
通用积分
0.0600
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
235 点
帖子
7
精华
0
在线时间
54 小时
注册时间
2013-9-18
最后登录
2019-10-25

楼主
飞奔的小龟 发表于 2014-8-12 17:06:02 |AI写论文
30论坛币
求教:想用merge将两个数据bond和code合并起来,合并by的字段Bondname为中文文本,然后合并后的结果中只有12个观测,但是用Excel做vlookup的结果有近200个,为什么呢?多谢!
bond.txt (5.21 KB)
code.txt (354.96 KB)
SAS结果.txt (687 Bytes)
Excel手动处理结果.xlsx (19.34 KB)

最佳答案

yzsxdlcc 查看完整内容

proc sort data=bond out=bond2; by bondname; run; proc sort data=code out=code2; by bondname; run; data test3; merge bond2(in=abc) code2(in=bcd); by bondname; if abc=1; run; 跑出来是205个,不知道对不对。
关键词:Merge vlookup 用excel lookup EXCEL Excel 中文

沙发
yzsxdlcc 发表于 2014-8-12 17:06:03

proc sort data=bond out=bond2;
by bondname;
run;

proc sort data=code out=code2;
by bondname;
run;

data test3;
merge bond2(in=abc)
code2(in=bcd);
by bondname;
if abc=1;
run;
跑出来是205个,不知道对不对。

藤椅
cos000000000 发表于 2014-8-12 17:17:08
重点在于理解sas中merge合并的原理。merge有左连接,右连接,内连接,全连接。以及  in = 选项的正确使用。
已有 1 人评分论坛币 收起 理由
admin_kefu + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

板凳
hexh 发表于 2014-8-12 17:22:33
一般都用对合并数据集按关键词排序(proc sort data=...; by Bondname; run;)。试试。

报纸
飞奔的小龟 发表于 2014-8-13 10:33:56
yzsxdlcc 发表于 2014-8-12 20:44
proc sort data=bond out=bond2;
by bondname;
run;
谢谢~Bond中是有205个观测,按您的方法跑出来以后的test3也有205个观测,但是test3中的Bondcode字段仍然绝大部分都是缺省值,这和Excel中vlookup做出来只有不到十个缺省值的结果还是不一样,问题还是木有解决啊~我怀疑是不是匹配的字段有问题啊,但是我也没看出来…

地板
飞奔的小龟 发表于 2014-8-13 10:34:44
hexh 发表于 2014-8-12 17:22
一般都用对合并数据集按关键词排序(proc sort data=...; by Bondname; run;)。试试。
merge之前已经排过序啦~

7
zljwanzi25 发表于 2015-7-23 15:58:42
遇到同样的问题,不知道是怎么回事

8
飞奔的小龟 发表于 2015-9-8 22:20:22
zljwanzi25 发表于 2015-7-23 15:58
遇到同样的问题,不知道是怎么回事
据说是中文的原因,可以把中文换成拼音就可以merge了……

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-21 19:05