【问题标题】:How to fill a new column with value fron existing column based on a condition?如何根据条件用现有列中的值填充新列?
【发布时间】:2021-11-11 12:22:48
【问题描述】:

我有如下数据-

我想创建一个名为“status_after_1month”的新列,如果 Start_date 和 End_Date 包含 2 月份的任何日期,并且如果记录为没找到。

【问题讨论】:

  • 我的回答对你有帮助吗?

标签: r coding-style


【解决方案1】:

不完全确定这是您所需要的(很难解析您所说的“如果找不到记录,应该填充“流失”的意思”):

数据:

df <- data.frame(
  ID = 1:3,
  Start_Date = c("1/1/2020", "1/1g/2020", "1/20/2020"),
  End_Date = c("6/14/2020", "3/14/2020", "2/22/2020"),
  Contract_Type = c("VPP", "Contract", "VPP")
)

解决方案:

df %>%
  mutate(
         status_after_1month = ifelse(grepl("^2", Start_Date)|grepl("^2", End_Date), 
                      Contract_Type, 
                      "Churn"))
  ID Start_Date  End_Date Contract_Type status_after_1month
1  1   1/1/2020 6/14/2020           VPP               Churn
2  2  1/1g/2020 3/14/2020      Contract               Churn
3  3  1/20/2020 2/22/2020           VPP                 VPP

【讨论】:

    猜你喜欢
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2019-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-04
    相关资源
    最近更新 更多