我目前有一个交易列表,我想根据交易的年龄向每个交易添加分类值。样本数据:
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过滤数据?
#当前正在熟悉和探索剪切建议,谢谢
答案 0 :(得分:1)
您第一次尝试使用case_when
是个好主意。但是您使用between
和day
函数的方式不正确。也许试试这个:
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"))