我使用一个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