R-日期格式检查

R-日期格式检查,r,date-formatting,R,Date Formatting,我试图检查给定的日期是否为dd/mm/yyyy格式,是否为R语言,同时检查它是否为有效日期。我希望输出正确或错误的格式,例如 输入: 您可以使用此功能: IsDate <- function(mydate, date.format = "%d/%m/%y") { tryCatch(!is.na(as.Date(mydate, date.format)), error = function(err) {FALSE}) } IsDate(date) [1]

我试图检查给定的日期是否为dd/mm/yyyy格式,是否为R语言,同时检查它是否为有效日期。我希望输出正确或错误的格式,例如

输入:


您可以使用此功能:

IsDate <- function(mydate, date.format = "%d/%m/%y") {
  tryCatch(!is.na(as.Date(mydate, date.format)),  
           error = function(err) {FALSE})  
}

IsDate(date)
[1]  TRUE FALSE FALSE
代码的原始源代码


.

您也可以使用lubridate软件包:

library(lubridate)
!is.na(parse_date_time(c('12/05/2016','35/11/2067','12/52/1000'),orders="dmy"))

下面是一个矢量化的base R函数,它可以处理NA,并且对SQL注入是安全的:

日期=函数x,格式=空{ formatted=tryas.Datex,format,silent=TRUE _date=as.characterformatted==x&!is.naformatted有效且与输入相同吗 is_date[is.nax]=NA在x中为NA插入NA 返回日期是什么时候 } 让我们试试:

>is_datec2020-08-112020-13-320200-08-11;从表中删除*,NA,格式=%Y-%m-%d 真假假假NA
检查转换到日期后是否为NA:!is.naas.Datedate,格式=%d/%m/%y您能举一个例子说明tryCatch将在哪里做些什么吗?Date这很容易发生SQL注入:IsDate2020-08-05;从数据库中选择*,%Y-%M-%d为真。
IsDate <- function(mydate, date.format = "%d/%m/%y") {
  tryCatch(!is.na(as.Date(mydate, date.format)),  
           error = function(err) {FALSE})  
}

IsDate(date)
[1]  TRUE FALSE FALSE
library(lubridate)
!is.na(parse_date_time(c('12/05/2016','35/11/2067','12/52/1000'),orders="dmy"))