[R] probable timezone confusion with as.yearmon

Gabor Grothendieck ggrothendieck at gmail.com
Fri Mar 19 00:08:15 CET 2010


as.yearmon converts relative to GMT.  If you want something else
convert it to character first:

as.yearmon(format(...))


On Thu, Mar 18, 2010 at 2:20 PM, Peter Keller <kellerp.l at gmail.com> wrote:
> It looks like a timezone issue, and it's causing confusion to me at least.
>
> My original data:
> gmt <-
> c("19880101 0000", "19880101 0100", "19880101 0300", "19880101 0400",
> "19880101 0500", "19880101 0600")
>
> These were converted to local dates/times with
> akst<-strptime(gmt,format="%Y%m%d %H%M")-(3600*9) # because I want
> local standard, not daylight savings time.
>
>> dput(akst)
> structure(c(567993600, 567997200, 568004400, 568008000, 568011600,
> 568015200), class = c("POSIXt", "POSIXct"), tzone = "")
>
> Which looks like this on my system:
>> akst
> [1] "1987-12-31 15:00:00 AKST" "1987-12-31 16:00:00 AKST" "1987-12-31
> 18:00:00 AKST"
> [4] "1987-12-31 19:00:00 AKST" "1987-12-31 20:00:00 AKST" "1987-12-31
> 21:00:00 AKST"
>
> but why does this happen?
> z<-as.yearmon(akst); z
> [1] "Jan 1988" "Jan 1988" "Jan 1988" "Jan 1988" "Jan 1988" "Jan 1988"
>
> I would expect this:
> [1] "Dec 1987" "Dec 1987" "Dec 1987" "Dec 1987" "Dec 1987" "Dec 1987"
>
> which I can get to by doing this:
> z<-as.yearmon(akst-(3600*9)); z
> [1] "Dec 1987" "Dec 1987" "Dec 1987" "Dec 1987" "Dec 1987" "Dec 1987"
>
> But I don't understand why the first one doesn't give the answer I
> expect (and would like).
>
> Thanks for any help-
> Peter
>
>> sessionInfo()
> R version 2.10.1 Patched (2010-03-16 r51294)
> i386-pc-mingw32
>
> locale:
> [1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United
> States.1252
> [3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
> [5] LC_TIME=English_United States.1252
>
> attached base packages:
> [1] stats     graphics  grDevices utils     datasets  methods   base
>
> other attached packages:
> [1] zoo_1.6-2
>
> loaded via a namespace (and not attached):
> [1] grid_2.10.1    lattice_0.18-3 tools_2.10.1
>
>> Sys.timezone()
> [1] "AKDT"
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list