r - 适用于“日期”类对象的 recode() 替代函数
问题描述
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”。对于每个“曲目”,最早的“日期”将变为“First”,最晚的日期将变为“Last”。
我试过这段代码:
mydata <- data %>%
group_by(track) %>%
mutate(newdate = recode(date, "First", .default = "Last"))
并遇到错误信息:
错误:
mutate()
输入有问题newdate
。x 没有适用于“日期”类对象的“重新编码”方法 i 输入newdate
是recode(date, "First", .default = "Last")
. i 错误发生在第 1 组:track = "Banshee Boardwalk"。
recode() 是否有可以申请“日期”类值的替代函数?
解决方案
如果我们想将min
和max
日期更改为character
元素,我们需要先将date
fromDate
类转换为character
library(dplyr)
mydata <- data %>%
group_by(track) %>%
mutate(newdate = case_when(date == min(date) ~ "First",
date == max(date) ~ "Last", TRUE ~ as.character(date)))
推荐阅读
- r - 如何对 R 中的 data.frame 或 tibble 列中的 NA 值的总数求和,并按月和年对它们进行分组
- c++ - 具有引用成员的新对象引用先前的对象。漏洞?UB?
- python - 使用索引展平 numpy 数组
- python - 如何在我制作的随机 2D 地牢中确定正确的墙壁碎片?
- python - 我想在 python 中使用 strip() 和字符串理解方法从多行字符串中删除所有特殊字符
- python - 模块没有属性'func'
- python - 从列表列表中按特定关键字提取列表
- tensorflow - 神经网络,为什么我们在进行批量梯度下降时沿轴 0 (np.sum(..., axis=0)) 求和偏差?
- r - 网格作为ggplot中的条形
- swift - Swift 暗模式背景渐变