使用case_when按日期范围对变量进行分类?

时间:2020-09-02 07:10:59

标签: r dplyr

我目前有一个交易列表,我想根据交易的年龄向每个交易添加分类值。样本数据:

Date    Transaction 
9/2/2020    44
8/29/2020   65.3
8/29/2020   34
8/29/2020   195
8/28/2020   180
8/28/2020   195
8/28/2020   48
8/27/2020   195
8/27/2020   65.3
8/27/2020   77

伪代码:

today<- lubridate::day(Sys.Date())
mutate(Age= case_when(
                         Date between(today, today -7) ~ "< Week Old",
                         Date between(today, today -30) ~ "30days Old",
                         Date between(today, today -60) ~ "60days Old",
                         Date >= between(today, today -90) ~ "90days+ Old"))

是否可以在日期范围之间使用mutate过滤数据?

#当前正在熟悉和探索剪切建议,谢谢

1 个答案:

答案 0 :(得分:1)

您第一次尝试使用case_when是个好主意。但是您使用betweenday函数的方式不正确。也许试试这个:

today <- lubridate::today()

df %>% 
  mutate(Age = case_when(
   between(Date, today-7, today) ~ "< Week Old",
   between(Date, today-30, today) ~ "30days Old",
   between(Date, today-60, today) ~ "60days Old",
   TRUE ~ "90days+ Old"))
相关问题