请选择 进入手机版 | 继续访问电脑版
楼主: renee233
1456 3

请教一个关于SAS合并数据集的问题 [推广有奖]

  • 0关注
  • 0粉丝

大专生

35%

还不是VIP/贵宾

-

威望
0
论坛币
636 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
865 点
帖子
11
精华
0
在线时间
77 小时
注册时间
2015-11-10
最后登录
2018-9-1

renee233 发表于 2015-12-26 13:03:45 |显示全部楼层 |坛友微信交流群

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
有两个数据集  一个是银行存取款交易的数据集 还有一个是利率变化的数据集
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?
二维码

扫码加我 拉你入群

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

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

关键词:合并数据 数据集 balance amount lance 存取款

回帖推荐

dogmamongo 发表于3楼  查看完整内容

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,'-') ...
Dany2 发表于 2015-12-27 17:26:03 来自手机 |显示全部楼层 |坛友微信交流群
你的主键是什么

使用道具

dogmamongo 发表于 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;

使用道具

renee233 发表于 2016-1-2 14:39:44 |显示全部楼层 |坛友微信交流群
dogmamongo 发表于 2015-12-27 17:33
data a;
input tno $   amount   balance   tdate $10.;   
datalines;
谢谢帮助!

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-3-29 08:12