适用于 "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 值?
如果我们想将min
和max
日期更改为character
元素,我们需要先将date
从Date
转换为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)))
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()
inputnewdate
. x no applicable method for 'recode' applied to an object of class "Date" i Inputnewdate
isrecode(date, "First", .default = "Last")
. i The error occurred in group 1: track = "Banshee Boardwalk".
是否有 recode() 的替代函数可以应用“日期”class 值?
如果我们想将min
和max
日期更改为character
元素,我们需要先将date
从Date
转换为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)))