[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