全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
6855 11
2013-03-14
各位大神请教个问题.        数据表-贷款计划表(t_plan) 其中包括lnno-账号,planrepayamt-每期计划还款金额,planrepaydate-每期计划还款时间,paln_cum-累计计划还款金额,term-期数;
                    还款明细表(t_repay);其中包括lnno-账号,repayamt-每期实际还款金额,repaydate-实际还款时间,repay_cum-累计实际还款金额,repay_term-期数;
       需求如下: 按照每笔贷款(按照lnno区分),分别计算每笔贷款每期逾期天数,逾期天数=实际还完该期贷款时间-该期计划还完时间;

(情况1:会出现部分贷款,中间几期没还,后面陆续补齐上面几期,逾期时间按照实际还完计算:例如:贷款编号为lnno=10100062009000000077,还款计划第11期应还239774.6元,第11期实际还款3477.53元 后面陆续在第12和13期还完该期贷款,则第11期贷款逾期天数=第13期还款时间-第11期计划还款时间);

(情况2:会出现部分贷款没还完现象,如果某期到最后仍未还完,则某期逾期天数=2010/1/1-某期计划还款时间);

请问各位高手这个逻辑用SAS如何实现,能否将具体代码附上,感激不尽?
T_repay.xls
大小:(422 KB)

 马上下载

T_plan.xls
大小:(482.5 KB)

 马上下载


二维码

扫码加我 拉你入群

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

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

全部回复
2013-3-14 20:12:28
还请各位高手多多给予点评~
二维码

扫码加我 拉你入群

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

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

2013-3-14 22:48:31
Try the following code and look at the results carefully.
You may need to do some futher calculations.


/* sort the data set by id LNNO and term */
proc sort data=t_plan;
    by lnno term;
run;
proc sort data=t_repay;
       by lnno_repay repay_term;
run;
data t_plan_repay;    /* merge the two data sets */
     merge t_plan t_repay (rename=(lnno_repay=lnno));
         by lnno;
         drop repayamt planrepayamt plansource;
run;

/* calculate the balance and days of delay at last event */
data t_lastDate; /* calculate the balance and days of delay */
       set t_plan_repay;
           balance = repay_cum - plan_cum;
           delay = repaydate - planrepaydate;
           by lnno;
           if last.lnno;
run;
data t_delay; /* output the results */
     set t_lastDate;
         if delay > 0 then output;
run;
二维码

扫码加我 拉你入群

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

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

2013-3-14 23:45:53
十分感谢您的回答
根据实际的业务情况,对于存在计划贷款本身来说,如果该贷款中间逾期,而最后总金额到截止贷款到期时还完,则该贷款其实同样算作逾期贷款.
例如某贷款在还款期内,中间出现逾期delay>0,最后到贷款截止日期全部还清,则该贷款同样算作逾期.
所以该代码在计算逾期天数部分还需要调整.
二维码

扫码加我 拉你入群

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

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

2013-3-16 22:07:00
yongyitian 发表于 2013-3-14 22:48
Try the following code and look at the results carefully.
You may need to do some futher calculatio ...
对于计算中间逾期现象,您看有什么方法可以用SAS来实现?
多谢指点.
二维码

扫码加我 拉你入群

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

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

2013-3-16 23:03:12
js4624331 发表于 2013-3-16 22:07
对于计算中间逾期现象,您看有什么方法可以用SAS来实现?
多谢指点.
先去掉 by lnno; if first.lnno; 这两句, and change dataset name to t_Delay_by_term;
这样可计算出每一term的delay。然后在看什么是你想要的结果。

data t_Delay_by_term;
       set t_plan_repay;
           balance = repay_cum - plan_cum;
           delay = repaydate - planrepaydate;
     *   by lnno;
     *   if last.lnno;
run;
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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