如何创建具有日期范围的虚拟对象?

时间:2021-06-24 00:57:58

标签: r

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

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

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

0 表示 03/15/2020 至 03/24/2020

2 为 03/24/2020 之后的期间

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

1 个答案:

答案 0 :(得分:0)

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

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))