У меня есть следующий набор данных кредита.Для каждого ссуды, которую я запрашивал amount
, дату выдачи ссуды issue_date
, дату последнего полученного платежа last_payment_date
, months_passed
, которая представляет собой разницу в месяцах между issue_date
и last_payment_date
, ссудойterm
является ли 36 для всех ссуд и status
ссуды.
Статус займа
(a) «Снято», если paymnet опаздывает более чем на 120 дней, то есть на 4+ месяца
(b) «Полностью оплачено», если выплаченовесь кредит обратно
(c) «Не соответствует кредитной политике. Статус: списан», аналогично (a)
(d) «Не соответствует кредитной политике. Статус:Полностью оплачен "как (b)
(e)" По умолчанию "такой же, как (а)
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 г. - февраль 2018 г., нопоявится только тогда, когда он жив.То есть, если кредит, выданный в августе 2008 года, появится с августа 2008 года по август 2011 года, то есть 36 строк.До и после этой даты мы ничего не знаем о ссуде, поэтому пропущенным значениям следует присваивать переменные (кроме переменной месяца, которая должна быть 1-м столбцом).
2 - добавить столбец months
, который будет1,2,3, ..., 35,36
3- Рядом с ним я хочу добавить еще одну фиктивную переменную paid
, поскольку я хочу определить, сделал ли заемщик платежную сеть месяца илинет, основываясь на status
.Если кредит имеет status
«Полностью оплачен» или «Не соответствует кредитной политике. Статус: Полностью оплачен», то в столбце paid
будут все единицы (1) в течение 36 месяцев, если status
- «Вычтено»"или" Не соответствует кредитной политике. Статус: списан "у нас будут единицы до последней даты paymnet и все нули после этого.Для Бена у нас будет 16 единиц и 20 нулей.
См. Выше объяснение статусов, которые помогут структурировать переменную paid
( ОЧЕНЬ ВАЖНО )
Программирование для такого любителя, как я, выглядит сложным, но для опытного программиста в R. это не должно быть трудным.
Пожалуйста, посмотрите, как выглядит сбалансированная структура набора панельных данных, чтобы лучше понять, о чем я спрашиваю.Все кредиты погашены.
Есть предложения?
Спасибо