Я пытаюсь создать модель прогнозирования истощения сотрудников. Я создал несколько строк для каждого сотрудника, чтобы включить его время в набор данных.
Столбцы для просмотра:
HIRE_DATE TERMINATION_DATE EMP_STATUS NROW YEAR_RANGE
Мое обновление:
Если сотрудник все еще находится в компании, дата увольнения равна SysDate (13 апреля 2019 г., т.е. сегодня), в противном случае сотрудник больше не активен.
У каждого сотрудника столько строк, сколько и его владения. Например, если сотрудник присоединился в 2015 году и ушел в отставку в 2018. Тогда у нас есть 4 строки для этого сотрудника. Я хочу, чтобы EMP_STATUS был 0 за все годы, когда он был сотрудником, и 1, когда он ушел.
Т.е., если сотрудник ушел из компании, т. е. дата увольнения! = сегодняшняя дата, тогда я хочу, чтобы последняя строка этого сотрудника была обновлена с EMP_STATUS = 1, иначе никаких изменений.
В примере набора данных EMP_STATUS
изменится для третьей строки nrow=1
Извлечение последней строки для расширенных годовых данных
hris_last_active_year <- hris_yearlyData %>%
group_by(nrow) %>%
slice(which.max(year_range))
Выше приведен последний ряд. Я могу применить условие для обновления emp_status
как 1, если дата завершения не равна текущей дате. Я подумал о том, чтобы получить предыдущие строки в другом наборе данных и объединить оба набора данных. Я попробовал приведенный ниже код, но это не дает мне правильный результат.
hris_before_last_active_year <- hris_yearlyData %>% group_by(nrow) %>%
filter(year_range<which.max(year_range))
Может кто-нибудь помочь мне найти правильное решение?
Кроме того, я хотел бы отметить, что фактический набор данных имеет 3 миллиона строк.
с учетом сегодняшней даты 04-13-2019
Исходный набор данных
nrow HIRE_DATE TERMINATION_DATE EMP_STATUS
1 01-05-2016 03-06-2018 0
2 01-05-2015 NA 0
Преобразованный набор данных (Мой проблемный набор данных)
nrow HIRE_DATE TERMINATION_DATE EMP_STATUS year_range
1 01-05-2016 03-06-2018 0 01-05-2016
1 01-05-2016 03-06-2018 0 01-05-2017
1 01-05-2016 03-06-2018 0 01-05-2018
2 01-05-2015 04-13-2019 0 01-05-2015
2 01-05-2015 04-13-2019 0 01-05-2016
2 01-05-2015 04-13-2019 0 01-05-2017
2 01-05-2015 04-13-2019 0 01-05-2018
2 01-05-2015 04-13-2019 0 01-05-2019
Ожидаемый набор данных
nrow HIRE_DATE TERMINATION_DATE EMP_STATUS year_range
1 01-05-2016 03-06-2018 0 01-05-2016
1 01-05-2016 03-06-2018 0 01-05-2017
1 01-05-2016 03-06-2018 1 01-05-2018
2 01-05-2015 04-13-2019 0 01-05-2015
2 01-05-2015 04-13-2019 0 01-05-2016
2 01-05-2015 04-13-2019 0 01-05-2017
2 01-05-2015 04-13-2019 0 01-05-2018
2 01-05-2015 04-13-2019 0 01-05-2019