R 何时使用case_按日期范围对变量进行分类?

R 何时使用case_按日期范围对变量进行分类?,r,dplyr,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(

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

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"))
today=between(今天,今天-90)~“90天+老”))
是否可以使用日期范围的“介于”来筛选数据


#目前正在熟悉和探索切割建议,感谢您第一次尝试
case\u,当时
是个好主意。但是您使用的
介于
日之间
功能不正确。也许可以试试这个:

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"))
今天%
变异(年龄=情况)(
在(日期,今天-7,今天)~“<周龄”,
在(日期,今天-30,今天)~“30天大”,
在(日期,今天-60,今天)~“60天大”,
正确~“90天+老”))

请参见
?cut()
…您的实际问题是什么,或者您当前的代码有什么问题?如果这是最好的方法,因为它没有在当前状态下生成列:/@Sotos我需要熟悉cut,我读了一些关于它的内容,但不太明白,这就是为什么我今天使用它并减去daysOk,我重新开门。也许可以用
cut
添加一次尝试,这样我们就可以看到您遇到的困难。我很高兴看到我离您很近,谢谢您的指点!