【发布时间】:2018-10-08 18:50:55
【问题描述】:
我有以下贷款数据集。对于每笔贷款,我都要求amount,贷款发放日期issue_date,最后一次paymnet收到日期last_payment_date,months_passed这是issue_date和last_payment_date之间的月差,贷款term 是否是所有贷款的 36 和贷款的 status。
贷款状态是
(a)如果 paymnet 延迟超过 120 天,即 4 个月以上,则“扣款”
(b)“全额支付”如果已偿还所有贷款
(c)“不符合信用政策。状态:Charged Off”同(a)
(d)“不符合信用政策。状态:全额支付”同(b)
(e)“默认”同(a)
df <- data.frame(id=c("John","Ben","Bill", "Eminem"),
amount=c("300", "500", "1000", "1200"),
issue_date=c("2010-01-01","2011-01-01","2012-01-01", "2015-02-01"),
last_pymnt_date=c("2013-02-01","2012-05-01","2014-01-01", "2018-02-01"),
months_passed=c(37,16,24,36),
term = c("36", "36", "36", "36"),
status=c("Fully paid",
"Charged off",
"Does not meet the credit policy. Status:Charged Off",
"Does not meet the credit policy. Status:Fully Paid"),
stringsAsFactors = F)
我正在创建将成为面板第一列的时间间隔,如下所示
time_interval <- as.data.frame(rep(seq(from = as.Date("2007-08-01"),
to = as.Date("2018-02-01"),
by = "month"),
4))
colnames(time_interval) <- c("time")
我想通过填写以下内容将其转换为 PANEL 数据集:
1-每笔贷款的日期为 2007 年 8 月至 2018 年 2 月,但仅在有效时才会出现。也就是说,如果 2008 年 8 月发放的贷款将从 2008 年 8 月到 2011 年 8 月出现,即 36 行。在此日期之前和之后,我们对贷款一无所知,因此应将缺失值分配给变量(应为第一列的月份变量除外)。
2-添加一列months,它将是 1,2,3,...,35,36
3- 在它旁边我想添加另一个虚拟变量paid,因为我想根据status 捕捉借款人是否已完成当月的付款。如果贷款有status 是“全额支付”或“不符合信用政策。状态:全额支付”而不是paid 列将是全1(1) 36 个月,如果status 是“已注销” ”或“不符合信用政策。状态:已注销”我们将在最后一个付款日期之前拥有一个,之后全为零。对于 Ben,我们将有 16 个 1 和 20 个 0。
有关有助于如何构造变量 paid(非常重要) 的状态的说明,请参阅上面的说明
这对于像我这样的业余爱好者来说看起来很复杂,但对于 R 中的专家级程序员来说应该不难。
请查看平衡面板数据集结构的外观,以便更好地理解我的要求。所有贷款均已到期。
有什么建议吗?
谢谢
【问题讨论】: