【发布时间】:2019-05-07 10:45:36
【问题描述】:
我的代码中的输入要求输入日期,我希望用户输入为 yyyy/mm/dd。输入日期后,我想检查日期是否实际上是该格式,如果不是,将要求用户再次输入日期。
我找到了一个应该在这里检查的函数:https://gist.github.com/micstr/69a64fbd0f5635094a53
但是,当我将此函数添加到我的代码并输入错误的日期格式(“2016/18/24”)时,此函数的返回不是 FALSE,而是 TRUE。
代码如下:
library(lubridate)
IsDate <- function(mydate) {
tryCatch(!is.na(as.Date(mydate, "",tryFormats = "%Y/%m/%d")),
error = function(err) {FALSE})
}
date1<- readline("Enter date (Format: yyyy/mm/dd):")
check <- IsDate(date1)
while(check == FALSE){
otp_date <- readline("Date in wrong format. Enter again:")
check <- IsDate(date1)
}
date1<- as.Date(date1)
我需要如何调整我的代码以解决我的问题?
【问题讨论】:
-
嗨。您能否再解释一下,即为什么您认为您输入的格式“错误”?