2

文字として保存されている日時を日時オブジェクトに変換したいと考えています。ただし、日時に午前 0 時が含まれる場合、結果の日時オブジェクトには時間コンポーネントが含まれないため、後の関数 (ここでは不要ですが、指定された場所と日時の気象データを抽出する関数) で使用するとエラーがスローされます。

コード例:

example.dates <- c("2011-11-02 00:31:00","2011-11-02 00:00:00","2011-11-02 00:20:22")
posix.dates   <- as.POSIXct(example.dates, tz="GMT", format="%Y-%m-%d %H:%M:%S")
posix.dates
posix.dates[2]

NB 時間は、午前 0 時を含む datetime が単独で呼び出される場合 (原子ベクトル) にのみ除外されます。

午前 0 時の時刻データを保持する方法はありますか? 代替機能を提案できますか?

4

4 に答える 4

2

わかりました。しばらくすると、問題を再確認できます。

私にとって、これは R のバグのように見えます。 https://bugs.r-project.org/bugzilla3/で報告することをお勧めします。

strptime一時的な回避策として、次のように関数を上書きすることが役立つかどうかを試すことができます。

strptime <- function (x, format, tz = "") 
{
    if ("POSIXct" %in% class(x)) {
        x
    } else {
        y <- .Internal(strptime(as.character(x), format, tz))
        names(y$year) <- names(x)
        y
    }
}
于 2013-11-03T20:26:47.313 に答える
0

lubridate日時にはパッケージを使用することを好みます。ここでも問題は発生していないようです。

example.dates <- c("2011-11-02 00:31:00","2011-11-02 00:00:00","2011-11-02 00:20:22")
library(lubridate)
ymd_hms(example.dates)
于 2013-11-03T22:02:42.873 に答える