r语言 - 替换日期中表示年份的某些数字



我使用一个dbplyr包来整理数据库表中的数据。我有一个列的日期如下:

Date      
<date>    
1 6202-06-21
2 6015-08-05
3 5012-05-18
4 3201-10-13
5 3021-03-08
6 3018-03-19
7 3018-01-31
8 3015-03-30
9 3014-03-03
10 3013-05-31
# ... with more rows

年份显然是错误的,但只需要替换前一两个数字(取决于大小写)。请问如何完成呢?我试图以以下方式使用str_sub():

mutate(
Date = str_sub((Date), 1, 2) <- "20"
) 

我得到这个错误信息:

Error: nanodbc/nanodbc.cpp:1655: 42883: Error: function substr(date, integer, integer)不存在;

准备参数时出错

一个可能的解决方案:

library(tidyverse)
df <- data.frame(
Date = c("6202-06-21","6015-08-05",
"5012-05-18","3201-10-13","3021-03-08","3018-03-19",
"3018-01-31","3015-03-30","3014-03-03","3013-05-31")
)
df %>% 
mutate(Date = str_replace(Date, "^\d{2}", "20"))
#>          Date
#> 1  2002-06-21
#> 2  2015-08-05
#> 3  2012-05-18
#> 4  2001-10-13
#> 5  2021-03-08
#> 6  2018-03-19
#> 7  2018-01-31
#> 8  2015-03-30
#> 9  2014-03-03
#> 10 2013-05-31

相关内容

  • 没有找到相关文章

最新更新