2015-06-12 45 views
1

將日期 - 時間向量轉換爲POSIXlt時,僅將一個特定時間「25-Mar-1984-02:00」「轉換爲POSIXlt但返回NA!所以,漸漸在我的分析/圖省略此行。將「1984-03-25 02:00:00」轉換爲POSIX給出NA

is.na(as.POSIXlt("25-Mar-1984-02:00",format = "%d-%b-%Y-%H:%M")) 
is.na(as.POSIXlt("25-Mar-1984-03:00",format = "%d-%b-%Y-%H:%M")) 
is.na(as.POSIXlt("25-Mar-1984-01:00",format = "%d-%b-%Y-%H:%M")) 
is.na(as.POSIXlt("24-Mar-1984-02:00",format = "%d-%b-%Y-%H:%M")) 
is.na(as.POSIXlt("26-Mar-1984-02:00",format = "%d-%b-%Y-%H:%M")) 

返回TRUE,FALSE,FALSE,FALSE,FALSE。

class(as.POSIXlt("25-Mar-1984-02:00",format = "%d-%b-%Y-%H:%M")) 

回報 [1]「POSIXlt」「POSIXt」

這不奇怪嗎?我怎樣才能讓它成爲「不是NA」?

+0

所有5行'is.na ...'我上面返回'FALSE' –

+4

可能是因爲1984-03-25 02:00是DST發生在你的時區(你沒有指定),所以2AM不存在(1:59:59.999後面跟着3:00:00.000)。 –

+0

@JoshuaUlrich是的,這是由於DST!感謝您指出! – Anto

回答

2

雖然你不說你的時區是什麼,但看起來像夏令時(DST)問題。在使用DST的時區中,會有一天的時間從1:59:59.999到3:00:00.000「跳躍」。這意味着在凌晨2點的任何時間都不存在。

我的猜測是1984-03-25 02:00:00是當DS​​T發生在您當地的時區。