全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1682 3
2015-12-26
有两个数据集  一个是银行存取款交易的数据集 还有一个是利率变化的数据集
tno   amount   balance   tdate   
001    200         200      2010-1-1
002    300         500      2010-2-1
003    400         900      2010-3-1
004    500         1400    2010-4-1

crate   cdate
0.55     2010-1-1
0.65     2010-1-30
0.75     2010-2-15
0.85     2010-3-28

请问这两个数据集如何merge?
二维码

扫码加我 拉你入群

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

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

全部回复
2015-12-27 17:26:03
你的主键是什么
二维码

扫码加我 拉你入群

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

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

2015-12-27 17:33:58
data a;
input tno $   amount   balance   tdate $10.;   
datalines;
001 200 200 2010-1-1
002 300 500 2010-2-1
003 400 900 2010-3-1
004 500 1400 2010-4-1
;
run;
data b;
input crate   cdate $10.;
datalines;
0.55 2010-1-1
0.65 2010-1-30
0.75 2010-2-15
0.85 2010-3-28
;
run;
data a(rename=(newdate=tdate));
set a;
y=scan(tdate,1,'-')*1;
m=scan(tdate,2,'-')*1;
d=scan(tdate,3,'-')*1;
newdate=mdy(m,d,y);
format newdate yymmddn8.;
drop m d y tdate;
run;
data b(rename=(newdate=cdate));
set b;
y=scan(cdate,1,'-')*1;
m=scan(cdate,2,'-')*1;
d=scan(cdate,3,'-')*1;
newdate=mdy(m,d,y);
format newdate yymmddn8.;
drop m d y cdate;
run;
proc sort data=b;by descending cdate;
run;
data b;
   set b;
      enddate=lag(cdate)-1;
          if enddate=. then enddate=today();
          format enddate yymmddn8.;
run;

proc sql;
   create table a_b as select
   a.*, b.crate
   from a, b
   where      b.cdate<=a.tdate<=b.enddate;
quit;
二维码

扫码加我 拉你入群

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

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

2016-1-2 14:39:44
dogmamongo 发表于 2015-12-27 17:33
data a;
input tno $   amount   balance   tdate $10.;   
datalines;
谢谢帮助!
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群