我需要在现有数据框上创建一个新列,作为“项目状态”。 该列中应包含诸如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列中捕获最新日期,例如,第5行的日期一直到“ EP_APP”列,因此在prject_status列中,其日期应为EP_Approved_Stage。
如果附件中有“ SIR_REC”列的日期,则表示其SIR_Received_stage 同样,对于所有日期,如果所有列均为空白,则项目状态为WIP。
新列应以红色突出显示在数据框中。
答案 0 :(得分:0)
在过去的一个周末,这个具有确切数据集的确切问题已经重新发布,没有一个最小的可复制示例。 Please read the guidelines。另外,还询问了similar questions,可以在lots of information的Internet上找到how to do this。
对于您的代码,您可能需要研究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将是最后一个填充的列,因此如果不遗漏,您想使用该列。否则,您要使用最后一列之前的列,如果缺少该列之前的列,依此类推。case_when中的确切顺序取决于所需的顺序。由于您没有提供示例,因此所有列的Project_status列中应该包含什么,我只使用了???。您可以更改它。