R - 日期格式检查

时间:2018-01-31 13:00:07

标签: r date-formatting

我试图用R语言检查给定日期是否为dd / mm / yyyy格式,以及它是否同时是有效日期。我希望输出为TRUE或FALSE格式,例如

输入

date<- c('12/05/2016','35/11/2067','12/52/1000')

输出

TRUE FALSE FALSE

3 个答案:

答案 0 :(得分:3)

您可以使用此功能:

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

代码的原始来源here

答案 1 :(得分:0)

你也可以使用lubridate包:

n1 = (Testmodel1.objects
                .filter(entry_time__gte=last, stage=1)
                .annotate(t_count=Count('contacts'))
                .filter(t_count__gt=3)
)

答案 2 :(得分:0)

这是一个处理validate的矢量化基础R函数,可以防止SQL注入:

NA

让我们尝试一下:

is_date = function(x, format = NULL) {
  formatted = try(as.Date(x, format), silent = TRUE)
  is_date = as.character(formatted) == x & !is.na(formatted)  # valid and identical to input
  is_date[is.na(x)] = NA  # Insert NA for NA in x
  return(is_date)
}