[R] timezone attribute lost during operations

Thomas Mang Thomas.Mang at fiwi.at
Fri Nov 21 13:22:24 CET 2008


Hi,

I was just *highly* surprised to find out that R 2.8.0 (Windows XP) 
changes the timezone-interpretation during operations on time data, as 
apparently the timezone attribute is lost and then, for the next 
interpretation of the timezone, the system settings are used.

Here is sample code (executed under a platform with the system timezone 
managed by Windows set to "CET", but note that as the input data is GMT 
I also want all the calculations to occur in GMT):

# input data
Time = as.POSIXct(strptime(c("2007-12-12 14:30:15", "2008-04-14 
15:31:34", "2008-04-14 15:31:34"), format = "%Y-%m-%d %H:%M:%S", tz = 
"GMT"))
Time  # OK, time zone is GMT
attr(Time, "tzone")  # OK, time zone is GMT



TApply = tapply(1:3, Time, max)
names(TApply) # wrong, names are converted to time zone of system

UTime = unique(Time)
UTime  # wrong, again time zone of system is used
attr(UTime, "tzone")  # == NULL


Now the issue is not that I wouldn't know how to solve the problem (by 
setting TZ to "GMT" prior to executing the calculations), but I wonder 
why is R doing this mess at all? Why is it not able to maintain the 
timezone-information stored in my original vector Time ?
Is this behavior supposed to be a feature, or is it a plain bug ?

Thanks,
Thomas



More information about the R-help mailing list