楼主: js4624331
6568 11

SAS判断某银行贷款逾期天数 [推广有奖]

  • 0关注
  • 0粉丝

大专生

50%

还不是VIP/贵宾

-

威望
0
论坛币
855 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
4288 点
帖子
32
精华
0
在线时间
59 小时
注册时间
2011-6-30
最后登录
2022-12-20

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
各位大神请教个问题.        数据表-贷款计划表(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)
二维码

扫码加我 拉你入群

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

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

关键词:银行贷款 Repay Plan term date 银行贷款 计划表 明细表 数据表 账号

沙发
js4624331 发表于 2013-3-14 20:12:28 |只看作者 |坛友微信交流群
还请各位高手多多给予点评~

使用道具

藤椅
yongyitian 发表于 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;

使用道具

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

使用道具

报纸
js4624331 发表于 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来实现?
多谢指点.

使用道具

地板
yongyitian 发表于 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;

使用道具

7
js4624331 发表于 2013-3-17 17:21:28 |只看作者 |坛友微信交流群
yongyitian 发表于 2013-3-16 23:03
先去掉 by lnno; if first.lnno; 这两句, and change dataset name to t_Delay_by_term;
这样可计算出每 ...
按照这种方式判断,只是单纯判断出每笔贷款还款时间和计划时间天数,但是并没有考虑到贷款是否还完.如果对于前一笔没还完,则逾期判断方式应该是如果是该期贷款未还完,则下期还款弥补上一期未还完款项,则该期贷款逾期天数=下一期还完时间-上一期计划时间?
麻烦您看看这种逻辑该怎么写? 辛苦了哈~

使用道具

8
yongyitian 发表于 2013-3-17 23:28:36 |只看作者 |坛友微信交流群
是不是这样

data t_balance_delay;
    set t_plan_repay;
        retain balance;
        by lnno;
        if first.lnno then balance = 0;
          else do;
             balance = balance +  repay_cum - plan_cum;
             delay = repaydate - planrepaydate;
          end;
run;

使用道具

9
js4624331 发表于 2013-3-18 15:05:11 |只看作者 |坛友微信交流群
yongyitian 发表于 2013-3-17 23:28
是不是这样

data t_balance_delay;
可能我描述的不是十分清楚, 在数据表整合后,判断逾期的地方不是十分到位,我将期望结果用excel形式作为附件形式添加(以其中一个贷款为例),麻烦您看看这样的结果该怎么样SAS来实现.重点是在第18行后面的逻辑判断.
test1.xls (25 KB)

使用道具

10
js4624331 发表于 2013-4-1 13:24:58 |只看作者 |坛友微信交流群
觉得这种逻辑用矩阵写是不是可以更直接的表达出来。

使用道具

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

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

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

GMT+8, 2024-11-11 02:06