2014-12-23 65 views
1

將字符格式的一組日期轉換爲POSIXct對象時遇到以下錯誤。POSIXct日期轉換錯誤

示例數據:

t<-c("3/11/2007 1:30", "3/11/2007 2:00", "4/11/2007 2:00") 

str(t) 

chr [1:3] "3/11/2007 1:30" "3/11/2007 2:00" "4/11/2007 2:00" 

z<-as.POSIXct(strptime(t, format ="%m/%d/%Y %H:%M")) 

z 
"2007-03-11 01:30:00 MST" NA      "2007-04-11 02:00:00 MDT" 

str(z) 

POSIXct[1:3], format: "2007-03-11 01:30:00" NA "2007-04-11 02:00:00" 

我的問題是,爲什麼是NA返回Z中的第二次約會?我有一個包含8年小時數據(從中複製上述日期)的數據集,並且此NA錯誤僅在3/8 - 3/14之間的日期和僅在小時爲02:00:00時彈出。

如果日期轉換爲POSIXlt,我不會遇到錯誤,所以這是我目前的工作。

有什麼想法?

+1

我沒有遇到這個錯誤在我的機器上運行相同的命令。 –

+0

也許http://stackoverflow.com/questions/21160094/using-as-posixct-in-r-giving-na-for-identical-character-structures – akrun

+3

你正在穿越夏令時。查看其他兩個日期的時區。 –

回答

1

嘗試使用不使用夏令時的時區:

as.POSIXct(t, format = "%m/%d/%Y %H:%M", tz = "GMT") 
## [1] "2007-03-11 01:30:00 GMT" "2007-03-11 02:00:00 GMT" "2007-04-11 02:00:00 GMT"