1

if以下のように、文字列を日付に変換できない場合にステートメントを作成したいと思います。

as.Date("2010-00-01")

ただし、上記の行を実行すると、以下のエラー出力が表示され続けます。

Error in charToDate(x) : 
  character string is not in a standard unambiguous format

ステートメントに使用できないのですが、文字列を日付に変換できない場合、ステートメントifをどのように使用できますか?ifありがとう。

4

2 に答える 2

6

簡単な定義は次のとおりです。

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 
}
于 2012-04-23T04:44:23.173 に答える
4

あいまいformatにならないように引数を指定します。悪い日付は常にに変換され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
于 2012-04-23T05:21:03.157 に答える