[R] POSIX problem

Mulholland, Tom Tom.Mulholland at dpi.wa.gov.au
Wed Jun 1 02:42:22 CEST 2005


Well I skipped to the end so pardon me if I've missed something. My first reaction was to go and look at the excellent article by Gabor in RNews 2004-1 on dates (p.32 in particular)

> as.POSIXct(strptime("7/12/2001 10:32",format = "%d/%m/%Y %H:%M"))
[1] "2001-12-07 10:32:00 W. Australia Standard Time"

as.POSIXct handles a limited number of formats and does not have a "format" parameter.

> args(as.POSIXct)
function (x, tz = "") 

So you need to use strptime.

Tom

> -----Original Message-----
> From: r-help-bounces at stat.math.ethz.ch
> [mailto:r-help-bounces at stat.math.ethz.ch]On Behalf Of David Scott
> Sent: Tuesday, 31 May 2005 8:27 PM
> To: r-help at stat.math.ethz.ch
> Subject: [R] POSIX problem
> 
> 
> 
> I am having trouble with creating a POSIXct object. If I 
> create a variable 
> of class Date first out of the date part of my data, I am ok, 
> but if I 
> just paste the date and time parts together and try and 
> create the POSIXct 
> object, I have problems.
> 
> Here is a toy example created from the actual data which caused the 
> problem. I am using R 2.0.1 on Windows XP.
> 
> > # Data frame with dates and times, as character
> > PeopleData.df
>     StartDate StartTime
> 1 29/10/2001     15:26
> 2  7/12/2001     10:32
> 3 16/11/2001     13:58
> 4 28/11/2001     14:00
> 5  2/11/2001     15:22
> 6 26/11/2001     11:15
> > str(PeopleData.df)
> `data.frame':   6 obs. of  2 variables:
>   $ StartDate: chr  "29/10/2001" "7/12/2001" "16/11/2001" 
> "28/11/2001" ...
>   $ StartTime: chr  "15:26" "10:32" "13:58" "14:00" ...
> > dput(PeopleData.df)
> structure(list(StartDate = c("29/10/2001", "7/12/2001", "16/11/2001",
> "28/11/2001", "2/11/2001", "26/11/2001"), StartTime = c("15:26",
> "10:32", "13:58", "14:00", "15:22", "11:15")), .Names = c("StartDate",
> "StartTime"), row.names = c("1", "2", "3", "4", "5", "6"), class = 
> "data.frame")
> > BeginDate <- as.Date(PeopleData.df$StartDate,format="%d/%m/%Y")
> > BeginDate
> [1] "2001-10-29" "2001-12-07" "2001-11-16" "2001-11-28" "2001-11-02"
> [6] "2001-11-26"
> > # Create POSIXct date-time object without difficulty
> > BeginTime <- 
> as.POSIXct(format(paste(BeginDate,PeopleData.df$StartTime),
> +                                 format="%Y/%m/%d %H:%M"))
> > BeginTime
> [1] "2001-10-29 15:26:00 New Zealand Standard Time"
> [2] "2001-12-07 10:32:00 New Zealand Standard Time"
> [3] "2001-11-16 13:58:00 New Zealand Standard Time"
> [4] "2001-11-28 14:00:00 New Zealand Standard Time"
> [5] "2001-11-02 15:22:00 New Zealand Standard Time"
> [6] "2001-11-26 11:15:00 New Zealand Standard Time"
> > # But not directly from the dates and times
> > BeginTime <- 
> as.POSIXct(format(paste(PeopleData.df$StartDate,PeopleData.df$
> StartTime),
> +                                 format="%d/%m/%Y %H:%M"))
> > BeginTime
> [1] "0029-10-20 New Zealand Standard Time"
> [2] "0007-12-20 New Zealand Standard Time"
> [3] "0016-11-20 New Zealand Standard Time"
> [4] "0028-11-20 New Zealand Standard Time"
> [5] "0002-11-20 New Zealand Standard Time"
> [6] "0026-11-20 New Zealand Standard Time"
> > # Format looks correct to me
> > paste(PeopleData.df$StartDate,PeopleData.df$StartTime)
> [1] "29/10/2001 15:26" "7/12/2001 10:32"  "16/11/2001 13:58" 
> "28/11/2001 
> 14:00"
> [5] "2/11/2001 15:22"  "26/11/2001 11:15"
> 
> What I think might be causing the problem is the lack of a 
> leading zero 
> for some of the days (as in 7/12/2001). This doesn't phase 
> as.Date though.
> 
> David Scott
> 
> 
> 
> _________________________________________________________________
> David Scott	Department of Statistics, Tamaki Campus
>  		The University of Auckland, PB 92019
>  		Auckland	NEW ZEALAND
> Phone: +64 9 373 7599 ext 86830		Fax: +64 9 373 7000
> Email:	d.scott at auckland.ac.nz
> 
> 
> Graduate Officer, Department of Statistics
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! 
> http://www.R-project.org/posting-guide.html
>




More information about the R-help mailing list