SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 728|回复: 4
打印 上一主题 下一主题

求助data a, b 合并

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2010-5-15 21:04:48 | 只看该作者

求助data a, b 合并

data a
code   Time        C
1        20030102        4.96
1        20030103        5
1        20030106        5.05
1        20030107        5.02
1        20030108        5.15
1        20030109        5.2
1        20030110        5.18
1        20030113        5.16
1        20030114        5.44
1        20030116        5.43
1        20030117        5.37
2        20030102        3.69
2        20030103        3.69
2        20030106        3.72
2        20030107        3.72
2        20030109        3.89
2        20030110        3.83
2        20030113        3.85
2        20030114        4.12
2        20030115        4.03
2        20030116        4.06
data b
Time        Cl
20030102        1320.63
20030103        1319.868
20030106        1334.679
20030107        1332.061
20030108        1372.067
20030109        1397.384
20030110        1384.859
20030113        1386.314
20030114        1466.851
20030115        1459.92
20030116        1485.618
20030117        1478.675
现在要求按照time合并a, b, 要求只要b 中含有time的如果a中没有则为缺省,我用的proc sql, 运行不了,哪位大侠帮帮忙
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2010-5-16 11:12:54 | 只看该作者

Re: 求助data a, b 合并

use proc sql left join

data a;
input code Time :yymmdd10. C;
cards;
1 20030102 4.96
1 20030103 5
1 20030106 5.05
1 20030107 5.02
1 20030108 5.15
1 20030109 5.2
1 20030110 5.18
1 20030113 5.16
1 20030114 5.44
1 20030116 5.43
1 20030117 5.37
2 20030102 3.69
2 20030103 3.69
2 20030106 3.72
2 20030107 3.72
2 20030109 3.89
2 20030110 3.83
2 20030113 3.85
2 20030114 4.12
2 20030115 4.03
2 20030116 4.06
;

run;

data b;
input Time :yymmdd10. Cl;
format Time yymmdd10.;
cards;
20030102 1320.63
20030103 1319.868
20030106 1334.679
20030107 1332.061
20030108 1372.067
20030109 1397.384
20030110 1384.859
20030113 1386.314
20030114 1466.851
20030115 1459.92
20030116 1485.618
20030117 1478.675
;
run;

proc sql;
create table merge as
select b.*, a.code, a.c from b
left join a on
b.time=a.time;
quit;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2010-5-17 22:56:21 | 只看该作者

Re: 求助data a, b 合并

谢谢user,  但似乎没理解我的意思,也许没表达清楚吧, 我想把2 20030108  . 保留,诸如此类的,
尽管它没出现在data a 中, 即就是说 data b 的time 是全的,但data a中可能有缺省, 在新的data中缺省就用
“ .”表示
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2010-5-20 10:36:17 | 只看该作者

Re: 求助data a, b 合并

不能直接data ab; set a b; 这样么?

不过按照上面那个sql; 直接让a left outer join b也可以吧。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2010-5-20 10:53:49 | 只看该作者

Re: 求助data a, b 合并

data c;
merge a b;
by time;/*匹配合并*/
run;
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-4 05:01 , Processed in 0.066583 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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