楼主: 吕小布韦
2566 12

请教一个merge的问题 [推广有奖]

  • 4关注
  • 11粉丝

已卖:524份资源

博士生

58%

还不是VIP/贵宾

-

TA的文库  其他...

bookstore of LV

威望
0
论坛币
1122 个
通用积分
256.9574
学术水平
16 点
热心指数
18 点
信用等级
14 点
经验
6569 点
帖子
268
精华
0
在线时间
298 小时
注册时间
2012-12-26
最后登录
2025-11-16

楼主
吕小布韦 发表于 2013-7-30 11:24:57 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
有两个数据集,d和c,都已按照a,sex排序。
共同变量是a,sex,b,按照a,sex匹配合并,用c中的变量b更新d中的变量b
运行之后还是有缺失值。怎么搞呢?
数据集如截图;
需要的命令如下:
data a;
input a b;
datalines;
1 44
;
run;
data c;
input a sex b;
datalines;
2 1 676
2 2 88
;
run;
data b;
input id a sex c;
datalines;
12 1 1 2233
13 2 1 23
14 1 2 23
15 2 2 23
16 1 2 23
17 2 1 22
18 2 1 23
19 2 2 23
;
run;

proc sort data=a;
by a;
run;
proc sort data=b;
by a sex;
run;
proc sort data=c;
by a sex;
run;
data d;
merge b a;
by a;
run;
proc sort data=d;
by a sex;
run;
data e;
merge d c;
by a sex;
run;
我的问题就是,新数据集e中有些变量b的值还是保留了d中的缺失值,我的目的是缺失值全部用c中的值替代

二维码

扫码加我 拉你入群

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

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

关键词:Merge Input Lines Data line

搜狗截图13年07月30日1122_1.jpg (105.12 KB)

搜狗截图13年07月30日1122_1.jpg

本帖被以下文库推荐

沙发
Imasasor 发表于 2013-7-30 11:32:07
读前面几句话,感觉像在读绕口令,期待高手
欢迎加入亚太地区第一R&Python数据挖掘群: 251548215;

藤椅
吕小布韦 发表于 2013-7-30 12:30:26
Imasasor 发表于 2013-7-30 11:32
读前面几句话,感觉像在读绕口令,期待高手
那我改一改。。。你都搞不定呀。。

板凳
吕小布韦 发表于 2013-7-30 12:31:54
Imasasor 发表于 2013-7-30 11:32
读前面几句话,感觉像在读绕口令,期待高手
怎么修改帖子啊。。。那个已阅是有啥作用的?

报纸
Imasasor 发表于 2013-7-30 12:35:01
吕小布韦 发表于 2013-7-30 12:31
怎么修改帖子啊。。。那个已阅是有啥作用的?
没啥作用,就是表明版主大人我看过了
欢迎加入亚太地区第一R&Python数据挖掘群: 251548215;

地板
yongyitian 发表于 2013-7-30 12:46:03
  1. /* try this */
  2. proc sql;
  3.     select d.id, d.a, d.sex, d.c, coalesce(d.b, c.b)
  4.     from d left join c
  5.     on d.a=c.a and d.sex=c.sex;
  6. quit;
复制代码

7
pobel 在职认证  发表于 2013-7-30 12:51:11
data e;
     merge d  c(rename=(b=b_in_c));
     by a sex;
     if missing(b) then b=b_in_c;
     drop b_in_c;

run;
和谐拯救危机

8
吕小布韦 发表于 2013-7-30 13:19:25
pobel 发表于 2013-7-30 12:51
data e;
     merge d  c(rename=(b=b_in_c));
     by a sex;
好巧妙。。。谢谢!!

9
吕小布韦 发表于 2013-7-30 13:20:08
yongyitian 发表于 2013-7-30 12:46
先谢谢了!说实话看不太懂。一会儿一点儿一点儿学习!

10
吕小布韦 发表于 2013-7-30 13:25:37
pobel 发表于 2013-7-30 12:51
data e;
     merge d  c(rename=(b=b_in_c));
     by a sex;
那,这个问题是怎么产生的呢?不是说merge语句会用后面一个数据集的变量覆盖掉前面一个数据集的。

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-9 06:01