if
如果字符串无法转换为日期,我想创建一个语句,如下所示:
as.Date("2010-00-01")
但是运行上面的行只是继续给出下面的错误输出:
Error in charToDate(x) :
character string is not in a standard unambiguous format
我不能将它用于语句,如果字符串无法转换为日期if
,我该如何使用语句?if
谢谢。
if
如果字符串无法转换为日期,我想创建一个语句,如下所示:
as.Date("2010-00-01")
但是运行上面的行只是继续给出下面的错误输出:
Error in charToDate(x) :
character string is not in a standard unambiguous format
我不能将它用于语句,如果字符串无法转换为日期if
,我该如何使用语句?if
谢谢。
这是一个快速定义:
isDatable <- function(x) tryCatch(as.Date(x), error = function(e) FALSE)
然后,
> isDatable("2012-00-01")
[1] FALSE
> isDatable("2012-01-01")
[1] "2012-01-01"
所以你可以使用if
:
if (!isDatable("2012-00-01")) {
# something
}
提供format
arg,这样它就不会模棱两可了。坏日期总是变成NA
.
d <- as.Date("2010-01-31", format="%Y-%m-%d") # OK
is.na(d) # FALSE
d <- as.Date("2010-00-31", format="%Y-%m-%d") # NA
is.na(d) # TRUE