Useful functions to check if a vector represent dates object
Usage
check_date_year(x)
check_date_quarter(x)
check_date_month(x)
check_format_date(x, date_format = "%Y-%m-%d")
Details
The function check_date_year
checks if the pattern AAAA is recognised. If so, the date will be assimilated with the first January of each year AAAA.
The function check_date_quarter
checks if the quarterly formats. The accepted formats (for example for the third quarter of 2000) are:
2000 T3
2000 Q3
2000t3
2000q3
2000T3
2000Q3
2000 t3
2000 q3 If one of the previous formats is recognised, the date will be assimilated with the first day of the quarter of the year (For example 2000 Q3 is assimilated to 2000-07-01). The function
check_date_month
checks if the monthly formats. The accepted formats (for example for march of 2000) are:2000 M3
2000 M03
2000 m3
2000 m03
2000M3
2000M03
2000m3
2000m03 If one of the previous formats is recognised, the date will be assimilated with the first day of the month of the year (For example 2000 M3 is assimilated to 2000-03-01). The function
check_format_date
checks if the objectx
match the pattern (or one of the patterns)date_format
.
Examples
# check_date_year --------------------------------------------------
# Good date (representing years)
check_date_year(x = c("2000", "2001", "2002", "2003"))
#> [1] TRUE
check_date_year(x = 2020:2024)
#> [1] TRUE
# Bad date
check_date_year(x = "2000 ")
#> [1] FALSE
check_date_year(x = 1:4)
#> [1] FALSE
# check_date_quarter -----------------------------------------------
# Good date
check_date_quarter(x = c("2000 q2", "2000 q3", "2000 q4", "2001 q1"))
#> [1] TRUE
check_date_quarter(x = c("2010T1", "2010T2", "2010T3", "2010T4"))
#> [1] TRUE
check_date_quarter(x = c("2020Q1", "2020Q2", "2020Q3", "2020Q4"))
#> [1] TRUE
check_date_quarter(x = c("2020Q01", "2020Q02", "2020Q03", "2020Q04"))
#> [1] TRUE
# Bad date
check_date_quarter(x = "2000 ")
#> [1] FALSE
check_date_quarter(x = 1:4)
#> [1] FALSE
check_date_quarter(x = "2000 q 2")
#> [1] FALSE
check_date_quarter(x = "2000 q12")
#> [1] FALSE
# check_date_month -----------------------------------------------
# Good date (representing years)
check_date_month(x = c("2000 m2", "2000 m3", "2000 m4", "2000 m5"))
#> [1] TRUE
check_date_month(x = c("2010M9", "2010M10", "2010M11", "2010M12"))
#> [1] TRUE
check_date_month(x = c("2020M111", "2020M12", "2021M01", "2021M02"))
#> [1] FALSE
check_date_month(x = c("2020M01", "2020M02", "2020M03", "2020M04"))
#> [1] TRUE
# Bad date
check_date_month(x = "2000 ")
#> [1] FALSE
check_date_month(x = 1:4)
#> [1] FALSE
check_date_month(x = "2000 m 2")
#> [1] FALSE
check_date_month(x = "2000 m13")
#> [1] FALSE
# check_format_date -----------------------------------------------
# Good date (representing years)
check_format_date(x = c("2000-01-01", "2000-02-01", "2000-03-01", "2000-04-01",
"2000-05-01", "2000-06-01", "2000-07-01", "2000-08-01",
"2000-09-01", "2000-10-01"),
date_format = "%Y-%m-%d")
#> [1] TRUE
check_format_date(x = c("01/08/2010", "01/09/2010", "01/10/2010", "01/11/2010",
"01/12/2010", "01/01/2011", "01/02/2011", "01/03/2011",
"01/04/2011", "01/05/2011"),
date_format = "%d/%m/%Y")
#> [1] TRUE
check_format_date(x = c("2000-01-01", "2000-02-01", "2000-03-01", "2000-04-01",
"2000-05-01", "2000-06-01", "2000-07-01", "2000-08-01",
"2000-09-01", "2000-10-01"),
date_format = c("%Y-%m-%d", "%d/%m/%Y"))
#> [1] TRUE
# Bad date
check_format_date(x = c("2000-01-01", "2000-02-01", "2000-03-01", "2000-04-01",
"2000-05-01", "2000-06-01", "2000-07-01", "2000-08-01",
"2000-09-01", "2000-10-01"),
date_format = "%d/%m/%Y")
#> [1] FALSE
check_format_date(x = c("01/08/2010", "01/09/2010", "01/10/2010", "01/11/2010",
"01/12/2010", "01/01/2011", "01/02/2011", "01/03/2011",
"01/04/2011", "01/05/2011"),
date_format = "%Y-%m-%d")
#> [1] FALSE