适用于 "Date" class 对象的 recode() 替代函数

Alternative function for recode() that applies for "Date" class objects

 track        type    shortcut player  system_played date       time_period  time record_duration
   <chr>        <chr>   <chr>    <chr>   <chr>         <date>     <chr>       <dbl>           <dbl>
 1 Luigi Racew~ Three ~ No       Salam   NTSC          1997-02-15 2M 12.99S   133.                1
 2 Luigi Racew~ Three ~ No       Dan     PAL           2020-11-06 1M 57.77S   118.              112
 3 Moo Moo Farm Three ~ No       Gregg G NTSC          1997-03-07 1M 35.48S    95.5              81
 4 Moo Moo Farm Three ~ No       MR      PAL           2020-02-18 1M 25.93S    85.9             374
 5 Koopa Troop~ Three ~ No       Launsp~ NTSC          1997-05-27 1M 42.01S   102.               95
 6 Koopa Troop~ Three ~ No       Dan     PAL           2020-07-13 1M 35.29S    95.3               0

我有一个上面的数据集,现在我想用包含相同值但名称不同的新列“newdate”替换“date”列。对于每个“track”,最早的“date”将成为“First”,最晚的“date”将成为“Last”。
我试过这段代码:

mydata <- data %>%
  group_by(track) %>%
  mutate(newdate = recode(date, "First", .default = "Last"))

并遇到错误信息:

Error: Problem with mutate() input newdate. x no applicable method for 'recode' applied to an object of class "Date" i Input newdate is recode(date, "First", .default = "Last"). i The error occurred in group 1: track = "Banshee Boardwalk".

是否有 recode() 的替代函数可以应用“日期”class 值?

如果我们想将minmax日期更改为character元素,我们需要先将dateDate转换为class 到 character

library(dplyr)
mydata <- data %>%
       group_by(track) %>%
       mutate(newdate = case_when(date == min(date) ~ "First",
                       date == max(date) ~ "Last", TRUE ~ as.character(date)))