【问题标题】:how to create a dummy with a date range?如何创建具有日期范围的假人?
【发布时间】:2021-06-24 00:57:58
【问题描述】:

我想创建一个具有日期范围的虚拟对象,例如:

从 2020 年 3 月 15 日到 2020 年 3 月 24 日的假人,

1 表示 2020 年 3 月 15 日之前的期间,

2020 年 3 月 15 日至 2020 年 3 月 24 日期间为 0

2020 年 3 月 24 日之后的时间段

dados <- dados %>%
mutate(data_trat = if_else(mês=03/15/2020 to 03/24/2020,1,0,2))

【问题讨论】:

  • 能否显示mes的格式。你需要dados %&gt;% mutate(data_trat = cut(mdy(mes), breaks = as.Date(c("2020-03-15", "2020-03-24")), labels = c(1, 0, 2)))
  • 如果您创建一个小的可重现示例以及预期的输出,这将更容易提供帮助。阅读how to give a reproducible example

标签: r


【解决方案1】:

我们可以在Date 类转换列上使用cut

library(dplyr)
dados %>% 
    mutate(data_trat = cut(mdy(mês),
       breaks = as.Date(c("2020-03-15", "2020-03-24")), labels = c(1, 0, 2)))

或者另一个选项是betweencase_when

dados %>%
    mutate(mês = mdy(mês), data_trat = case_when(mês < as.Date("2020-03-15") ~ 1,
      between(mês, as.Date("2020-03-15"), as.Date("2020-03-24")) ~ 0, 
      TRUE ~ 2))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-31
    • 2020-03-28
    相关资源
    最近更新 更多