Создайте новый столбец согласно его этапам с датами - PullRequest
0 голосов
/ 24 февраля 2020

Мне нужно создать новый столбец на существующем фрейме данных как «Статус проекта». В этом столбце должны быть такие записи, как этап SIR_Received, этап SIR_Approved, этап TSS_FC_Stage, TSS_Actual_stage, этап EP_Received, этап EP_Approved, этап Lease_Approved, RFC_FC_Stage, RFC_Actual_stage & WIP.

Этапы в порядке, поэтому в столбце Project_Status ie должна быть зафиксирована самая последняя дата, например, в строке № 5 есть даты до столбца "EP_APP", поэтому в столбце prject_status она должна быть EP_Approved_Stage.

Если в прикрепленном столбце есть дата против столбца «SIR_RE C», это означает, что его SIR_Received_stage одинаково для всех дат, и если все столбцы пустые, тогда статус проекта WIP.

enter image description here

Новый столбец должен выглядеть следующим образом в кадре данных, выделенном красным цветом.

enter image description here

1 Ответ

0 голосов
/ 24 февраля 2020

За прошедшие выходные этот точный вопрос с именно этим набором данных был перенесен без минимального воспроизводимого примера. Пожалуйста, прочтите руководство . Кроме того, были заданы похожие вопросы и много информации можно найти в inte rnet на как это сделать .

для вашего кода вы можете посмотреть dplyr

library(dplyr)
df <- df %>% 
   mutate(Project_status = case_when(
           !is.na(RFC_ACT) ~ "RFC_Actual_stage",
           !is.na(RFC_FC) ~ "RFC_???",
           !is.na(LEASE_APP) ~ "???",
           !is.na(EP_APP) ~ "???",
           !is.na(EP_REC) ~ "EP_Received_stage",
           !is.na(TSS_ACT) ~ "TSS_Actual_stage",
           !is.na(TSS_FC) ~ "TSS_???_stage",
           !is.na(SIR_App) ~ "SIR_Approved stage",
           !Is.na(SIR_REC) ~ "SIR_Received_Stage",
           TRUE ~ "WIP")

Мутат создает новый столбец с именем Project_status. Используя case_when, вы можете определить, как должен быть заполнен этот столбец. Я предполагал, что WIP будет последним заполненным столбцом, поэтому, если он не пропущен, вы можете использовать этот. В противном случае вы хотите использовать столбец до последнего, если в нем отсутствует столбец до этого et c et c. Точный порядок в case_when зависит от того, какой порядок вы хотите. Поскольку вы не предоставили примеры того, что должно быть в столбце Project_status для всех столбцов, я просто использовал ???. Вы можете изменить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...