RE: [R] Chron, as.POSIXct problem

2003-11-13 Thread Gabor Grothendieck

From: Brian Beckage [EMAIL PROTECTED]
  
 Thanks to all who responded to my posting.
 
 At 11:39 AM -0500 11/12/03, Gabor Grothendieck wrote:
 You are being hit by a timezone problem. Its not really shifting
 the days by one. Its working in the GMT timezone, not yours.
 
 If you can accept a date format that chron supports then this is the
 easiest solution since chron does not support timezones and so can't
 give you such problems in the first place. For example,
 the following stays in chron the whole time:
 
  format(datesTest, format=m/day/year)
  [1] Oct/01/1952 Oct/02/1952 Oct/03/1952
 
 If you must convert to POSIXt to take advantage of a format
 only supported by POSIXt then use POSIXlt and specify the timezone explictly:
 
  format(as.POSIXlt(datesTest,tz=GMT), %m/%d/%Y)
  [1] 10/01/1952 10/02/1952 10/03/1952
 
 This solved the problem using as.POSIXlt(). I guess the tz argument 
 doesn't solve the problem using as.POSIXct(). In any case, I'm able 
 to use as.POSIXlt() in my current application.

You can use POSIXct but its a bit trickier.  Assuming datesTest is a 
chron vector, as before you can do this.  

  format(as.POSIXct(datesTest), %m/%d/%Y, tz=GMT) # right

Note that in this case you have to use the tz parameter on format, NOT
on as.POSIXct: 

  format(as.POSIXct(datesTest, tz=GMT), %m/%d/%Y) # wrong

__
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help


[R] Chron, as.POSIXct problem

2003-11-12 Thread Brian Beckage
Dear R list,

I noticed the following 'problem' when changing the format of dates 
created with seq.dates() (from the Chron library) using as.POSIXct() 
(R 1.8.0 on OSX 10.2.8):

 datesTest-seq.dates(from=10/01/1952, length=3, by=days);
 datesTest
[1] 10/01/52 10/02/52 10/03/52

# Now changing the format to show year as 1952.

 datesTest-format(as.POSIXct(datesTest), %m/%d/%Y)
 datesTest
[1] 09/30/1952 10/01/1952 10/02/1952

The dates were shifted by one day.  The work around is simple enough, e.g.,

 datesTest-format(as.POSIXct(datesTest+1), %m/%d/%Y)
[1] 10/01/1952 10/02/1952 10/03/1952

but I wonder if this is the intended behavior?

Brian

__
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help


Re: [R] Chron, as.POSIXct problem

2003-11-12 Thread Prof Brian Ripley
Does not happen on Solaris or Linux, so looks like a MacOS X problem.

Here is some crosschecks:

 unclass(datesTest)
[1] -6301 -6300 -6299
attr(,format)
[1] m/d/y
attr(,origin)
month   day  year
1 1  1970
 unclass(as.POSIXct(datesTest))
[1] -544406400 -54432 -544233600


On Wed, 12 Nov 2003, Brian Beckage wrote:

 Dear R list,
 
 I noticed the following 'problem' when changing the format of dates 
 created with seq.dates() (from the Chron library) using as.POSIXct() 
 (R 1.8.0 on OSX 10.2.8):
 
   datesTest-seq.dates(from=10/01/1952, length=3, by=days);
   datesTest
 [1] 10/01/52 10/02/52 10/03/52
 
 # Now changing the format to show year as 1952.
 
   datesTest-format(as.POSIXct(datesTest), %m/%d/%Y)
   datesTest
 [1] 09/30/1952 10/01/1952 10/02/1952
 
 
 The dates were shifted by one day.  The work around is simple enough, e.g.,
 
   datesTest-format(as.POSIXct(datesTest+1), %m/%d/%Y)
 [1] 10/01/1952 10/02/1952 10/03/1952
 
 but I wonder if this is the intended behavior?
 
 Brian
 
 __
 [EMAIL PROTECTED] mailing list
 https://www.stat.math.ethz.ch/mailman/listinfo/r-help
 
 

-- 
Brian D. Ripley,  [EMAIL PROTECTED]
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel:  +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UKFax:  +44 1865 272595

__
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help


Re: [R] Chron, as.POSIXct problem

2003-11-12 Thread Philippe Glaziou
Prof Brian Ripley [EMAIL PROTECTED] wrote:
 Does not happen on Solaris or Linux, so looks like a MacOS X problem.

It does not happen on my Mac G4 box (R 1.8.0 on MacOSX 10.2.6). 

--Philippe




 Here is some crosschecks:
 
  unclass(datesTest)
 [1] -6301 -6300 -6299
 attr(,format)
 [1] m/d/y
 attr(,origin)
 month   day  year
 1 1  1970
  unclass(as.POSIXct(datesTest))
 [1] -544406400 -54432 -544233600
 
 
 On Wed, 12 Nov 2003, Brian Beckage wrote:
 
  Dear R list,
  
  I noticed the following 'problem' when changing the format of dates 
  created with seq.dates() (from the Chron library) using as.POSIXct() 
  (R 1.8.0 on OSX 10.2.8):
  
datesTest-seq.dates(from=10/01/1952, length=3, by=days);
datesTest
  [1] 10/01/52 10/02/52 10/03/52
  
  # Now changing the format to show year as 1952.
  
datesTest-format(as.POSIXct(datesTest), %m/%d/%Y)
datesTest
  [1] 09/30/1952 10/01/1952 10/02/1952
  
  
  The dates were shifted by one day.  The work around is simple enough, e.g.,
  
datesTest-format(as.POSIXct(datesTest+1), %m/%d/%Y)
  [1] 10/01/1952 10/02/1952 10/03/1952
  
  but I wonder if this is the intended behavior?
  
  Brian
  
  __
  [EMAIL PROTECTED] mailing list
  https://www.stat.math.ethz.ch/mailman/listinfo/r-help
  
  
 
 -- 
 Brian D. Ripley,  [EMAIL PROTECTED]
 Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
 University of Oxford, Tel:  +44 1865 272861 (self)
 1 South Parks Road, +44 1865 272866 (PA)
 Oxford OX1 3TG, UKFax:  +44 1865 272595
 
 __
 [EMAIL PROTECTED] mailing list
 https://www.stat.math.ethz.ch/mailman/listinfo/r-help

-- 
Philippe

__
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help


RE: [R] Chron, as.POSIXct problem

2003-11-12 Thread Gabor Grothendieck



You are being hit by a timezone problem.  Its not really shifting 
the days by one.  Its working in the GMT timezone, not yours.

If you can accept a date format that chron supports then this is the 
easiest solution since chron does not support timezones and so can't
give you such problems in the first place.  For example, 
the following stays in chron the whole time:

   format(datesTest, format=m/day/year)
   [1] Oct/01/1952 Oct/02/1952 Oct/03/1952

If you must convert to POSIXt to take advantage of a format
only supported by POSIXt then use POSIXlt and specify the timezone explictly:

   format(as.POSIXlt(datesTest,tz=GMT), %m/%d/%Y)
   [1] 10/01/1952 10/02/1952 10/03/1952

Its because of subtle problems like this that I think that some 
sort of naive (i.e. non-timezone) time such as chron or 
an alternative, should be in the base to encourage wider use.

--- 
Date: Wed, 12 Nov 2003 10:05:39 -0500 
From: Brian Beckage [EMAIL PROTECTED]
To: [EMAIL PROTECTED] 
Subject: [R] Chron, as.POSIXct problem 

 
 
Dear R list,

I noticed the following 'problem' when changing the format of dates 
created with seq.dates() (from the Chron library) using as.POSIXct() 
(R 1.8.0 on OSX 10.2.8):

 datesTest-seq.dates(from=10/01/1952, length=3, by=days);
 datesTest
[1] 10/01/52 10/02/52 10/03/52

# Now changing the format to show year as 1952.

 datesTest-format(as.POSIXct(datesTest), %m/%d/%Y)
 datesTest
[1] 09/30/1952 10/01/1952 10/02/1952


The dates were shifted by one day. The work around is simple enough, e.g.,

 datesTest-format(as.POSIXct(datesTest+1), %m/%d/%Y)
[1] 10/01/1952 10/02/1952 10/03/1952

but I wonder if this is the intended behavior?

Brian

__
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help

__
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help


RE: [R] Chron, as.POSIXct problem

2003-11-12 Thread Brian Beckage
Thanks to all who responded to my posting.

At 11:39 AM -0500 11/12/03, Gabor Grothendieck wrote:
You are being hit by a timezone problem.  Its not really shifting
the days by one.  Its working in the GMT timezone, not yours.
If you can accept a date format that chron supports then this is the
easiest solution since chron does not support timezones and so can't
give you such problems in the first place.  For example,
the following stays in chron the whole time:
   format(datesTest, format=m/day/year)
   [1] Oct/01/1952 Oct/02/1952 Oct/03/1952
If you must convert to POSIXt to take advantage of a format
only supported by POSIXt then use POSIXlt and specify the timezone explictly:
   format(as.POSIXlt(datesTest,tz=GMT), %m/%d/%Y)
   [1] 10/01/1952 10/02/1952 10/03/1952
This solved the problem using as.POSIXlt().  I guess the tz argument 
doesn't solve the problem using as.POSIXct().  In any case, I'm able 
to use as.POSIXlt() in my current application.

Its because of subtle problems like this that I think that some
sort of naive (i.e. non-timezone) time such as chron or
an alternative, should be in the base to encourage wider use.
I agree. Thanks again for your help.

Brian

---
Date: Wed, 12 Nov 2003 10:05:39 -0500
From: Brian Beckage [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Subject: [R] Chron, as.POSIXct problem


Dear R list,

I noticed the following 'problem' when changing the format of dates
created with seq.dates() (from the Chron library) using as.POSIXct()
(R 1.8.0 on OSX 10.2.8):
 datesTest-seq.dates(from=10/01/1952, length=3, by=days);
 datesTest
[1] 10/01/52 10/02/52 10/03/52

# Now changing the format to show year as 1952.

 datesTest-format(as.POSIXct(datesTest), %m/%d/%Y)
 datesTest
[1] 09/30/1952 10/01/1952 10/02/1952

The dates were shifted by one day. The work around is simple enough, e.g.,

 datesTest-format(as.POSIXct(datesTest+1), %m/%d/%Y)
[1] 10/01/1952 10/02/1952 10/03/1952

but I wonder if this is the intended behavior?

Brian

__
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help
___
No banners. No pop-ups. No kidding.
Introducing My Way - http://www.myway.com
__
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help