Как я могу вставить счетчик для подсчета количества кредитов, полученных клиентом в r - PullRequest
0 голосов
/ 13 июля 2020

Имейте набор данных о заемщиках, у которых было несколько ссуд. Я хотел бы вставить счетчик ссуд, который учитывает каждую ссуду. Ниже представлена ​​таблица, в которой я показываю, как мне хотелось бы, чтобы счетчик выглядел. Я бы также создал новый столбец, который показывает максимальное количество кредитов, которые когда-либо были у заемщика. Я также хотел бы вставить две новые колонки. Один определяет первый заем для каждого заемщика, а другой - последний заем для каждого заемщика. См. Таблицу ниже введите описание изображения здесь

1 Ответ

1 голос
/ 14 июля 2020

Предполагая, что ваши ссуды в порядке (например, на Loan_Date), вы можете использовать этот подход, используя tidyverse. Используйте group_by, чтобы оценить ссуды для данного Customer_ID, а затем используйте row_number и n(), чтобы определить желаемые значения столбца.

library(tidyverse)

df %>%
  group_by(Customer_ID) %>%
  mutate(LoanCounter = row_number(),
         MaxLoan = n(),
         FirstLoan = ifelse(row_number() == 1, 1, 0),
         LastLoan = ifelse(row_number() == n(), 1, 0))

Выход

# A tibble: 9 x 7
# Groups:   Customer_ID [2]
  Customer_ID Customer_Account Loan_Date LoanCounter MaxLoan FirstLoan LastLoan
        <dbl>            <dbl>     <dbl>       <int>   <int>     <dbl>    <dbl>
1      100100             1001    200801           1       5         1        0
2      100100             1002    200902           2       5         0        0
3      100100             1003    201003           3       5         0        0
4      100100             1004    201105           4       5         0        0
5      100100             1005    201209           5       5         0        1
6      100102             2001    201805           1       4         1        0
7      100102             2006    201903           2       4         0        0
8      100102             2010    201905           3       4         0        0
9      100102              238    202002           4       4         0        1

Данные

df <- structure(list(Customer_ID = c(100100, 100100, 100100, 100100, 
100100, 100102, 100102, 100102, 100102), Customer_Account = c(1001, 
1002, 1003, 1004, 1005, 2001, 2006, 2010, 238), Loan_Date = c(200801, 
200902, 201003, 201105, 201209, 201805, 201903, 201905, 202002
)), class = "data.frame", row.names = c(NA, -9L))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...