2012-08-27 13 views
5

Estoy ejecutando R 2.15.1 en una Mac con OS X Mountain Lion. Intento utilizar el paquete lubridate (v 1.1.0) para generar una secuencia de tiempos en la zona horaria del este de EE. UU. Para el año 2011 en intervalos de 15 minutos. El siguiente parece que debería funcionar:Horario de verano en lubridate

d0 <- mdy_hms("1/1/2011 5:00:00", tz="UTC") 
dspan <- d0 + c(0:35039) * minutes(15) 
espan <- with_tz(dspan,tz="America/New_york") 

Ahora, en 2011 el horario de verano comenzó a las 2 AM el 13 de marzo Los primeros 16 valores de espan en esa fecha son:

espan[(month(espan)==3)&(day(espan)==13)][1:16] 

[1] "00:00:00 EST" "00:15:00 EST" "00:30:00 EST" "00:45:00 EST" 
[5] "01:00:00 EST" "01:15:00 EST" "01:30:00 EST" "01:45:00 EST" 
[9] "03:00:00 EDT" "03:15:00 EDT" "03:30:00 EDT" "03:45:00 EDT" 
[13] "04:00:00 EDT" "04:15:00 EDT" "04:30:00 EDT" "04:45:00 EDT" 

En el arriba de la salida eliminé las fechas para que encajara aquí. Pero me está dando lo que espero. El tiempo una hora después de la 1 AM EST es a las 3 AM EDT. Sin embargo, el horario de verano terminó el 6 de noviembre, y aquí están los primeros 16 valores de espan en esa fecha:

espan[(month(espan)==11)&(day(espan)==6)][1:16] 

[1] "00:00:00 EDT" "00:15:00 EDT" "00:30:00 EDT" "00:45:00 EDT" 
[5] "01:00:00 EDT" "01:15:00 EDT" "01:30:00 EDT" "01:45:00 EDT" 
[9] "01:00:00 EDT" "01:15:00 EDT" "01:30:00 EDT" "01:45:00 EDT" 
[13] "02:00:00 EST" "02:15:00 EST" "02:30:00 EST" "02:45:00 EST" 

¿Por qué aparece 1 PM EDT dos veces? ¿No debería el tiempo una hora después de la 1 a.m. EDT ser 1 a.m EST? ¿Es esto un problema con lubridate, o alguna peculiaridad del sistema operativo?

+0

Solo tenga en cuenta que este error parece haberse solucionado. –

Respuesta

4

Creo que es un error.

> seq(as.POSIXct("2011-11-06 00:15:00", tz='America/New_York'), 
     as.POSIXct('2011-11-06 02:45:00', tz='America/New_York'), 
     by='min')[c(TRUE, rep(FALSE, 14))] 

[1] "2011-11-06 00:15:00 EDT" "2011-11-06 00:30:00 EDT" "2011-11-06 00:45:00 EDT" 
[4] "2011-11-06 01:00:00 EDT" "2011-11-06 01:15:00 EDT" "2011-11-06 01:30:00 EDT" 
[7] "2011-11-06 01:45:00 EDT" "2011-11-06 01:00:00 EST" "2011-11-06 01:15:00 EST" 
[10] "2011-11-06 01:30:00 EST" "2011-11-06 01:45:00 EST" "2011-11-06 02:00:00 EST" 
[13] "2011-11-06 02:15:00 EST" "2011-11-06 02:30:00 EST" "2011-11-06 02:45:00 EST" 
+0

Gracias. Para ser claros, parece ser un error en lubridate. – Ringold

+0

Parece ser. Sin embargo, las zonas horarias y los problemas de horario de verano suelen ser complicados y específicos del sistema operativo. – GSee

+0

Obtengo resultados similares a @Gsee con la versión R 2.15.1 (2012-06-22) en x86_64-pc-mingw32/x64 (64 bits), por lo que puede no ser específico del sistema operativo sino específico de lubridate. –

Cuestiones relacionadas