SAS中文论坛

标题: 求助data a, b 合并 [打印本页]

作者: shiyiming    时间: 2010-5-15 21:04
标题: 求助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, 运行不了,哪位大侠帮帮忙
作者: shiyiming    时间: 2010-5-16 11:12
标题: 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;
作者: shiyiming    时间: 2010-5-17 22:56
标题: Re: 求助data a, b 合并
谢谢user,  但似乎没理解我的意思,也许没表达清楚吧, 我想把2 20030108  . 保留,诸如此类的,
尽管它没出现在data a 中, 即就是说 data b 的time 是全的,但data a中可能有缺省, 在新的data中缺省就用
“ .”表示
作者: shiyiming    时间: 2010-5-20 10:36
标题: Re: 求助data a, b 合并
不能直接data ab; set a b; 这样么?

不过按照上面那个sql; 直接让a left outer join b也可以吧。
作者: shiyiming    时间: 2010-5-20 10:53
标题: Re: 求助data a, b 合并
data c;
merge a b;
by time;/*匹配合并*/
run;




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2