Hi Gabor,

I'm using this code but it doesn't work for me

> strptime2<-function (date,time) as.POSIXct(strptime(paste(date,time), 
> "%m/%d/%Y %H:%M:%S"))
> dt=mapply(strptime2, "01/01/2008", "00:00:00", SIMPLIFY=FALSE, 
> USE.NAMES=FALSE)
> df=data.frame(X1=dt,X2=1)
> dt
[[1]]
[1] "2008-01-01 Eastern Standard Time"

> df
  structure.1199163600..class...c..POSIXt....POSIXct....tzone...... X2
1                                                        2008-01-01  1

Here df looks very wrong to me.

So I tested this code:

> df2=data.frame(X1=as.POSIXct(Sys.time()),X2=1)
> df2
                   X1 X2
1 2008-02-17 23:43:08  1
> class(df2$X1)
[1] "POSIXt"  "POSIXct"

Ah this worked as I expected.

So some tweaking here - SIMPLIFY is set TRUE now:

> strptime2<-function (date,time) as.POSIXct(strptime(paste(date,time), 
> "%m/%d/%Y %H:%M:%S"))
> dt=mapply(strptime2, "01/01/2008", "00:00:00", SIMPLIFY=TRUE, USE.NAMES=FALSE)
> df=data.frame(X1=dt,X2=1)
> df
          X1 X2
1 1199163600  1
> class(df$X1)
[1] "numeric"

Hmm... it worked, but not in a way I wanted. The class info is missing.

So how to get the result like this below? I do need that mapply + 
strptime(paste), cos my CSV file is formatted in that way!

> df2

                   X1 X2

1 2008-02-17 23:43:08  1

> class(df2$X1)

[1] "POSIXt"  "POSIXct"


Any insight?

Cheers,

Bo



> Date: Sun, 17 Feb 2008 15:53:28 -0500
> From: [EMAIL PROTECTED]
> To: [EMAIL PROTECTED]
> Subject: Re: [R] How to make a vector/list/array of POSIXlt object?
> CC: r-help@r-project.org
> 
> Normally one uses POSIXct rather than POSIXlt for storage.  See R News 4/1 for
> more info on date and time classes.
> 
> On Feb 17, 2008 3:45 PM, Bo Zhou <[EMAIL PROTECTED]> wrote:
> >
> > Hi Guys,
> >
> > I'm cooking up my time series code. I want a data frame with first column 
> > as timestamp in POSIXlt format.
> >
> > I hit on this the problem of how to create an array/list/vector of POSIXlt 
> > objects. Code is as follows
> >
> >
> >
> > > dtt=array(dim = 2)
> > > t=as.POSIXlt( strptime("07/12/07 13:20:01", "%m/%d/%Y %H:%M:%S",tz="GMT"))
> > > dtt
> > [1] NA NA
> > > t
> > [1] "0007-07-12 13:20:01 GMT"
> > > dtt[1]=t
> > Warning message:
> > In dtt[1] = t :
> >  number of items to replace is not a multiple of replacement length
> > > class(dtt)
> > [1] "list"
> > > class(t)
> > [1] "POSIXt"  "POSIXlt"
> > > unclass(t)
> > $sec
> > [1] 1
> >
> > $min
> > [1] 20
> >
> > $hour
> > [1] 13
> >
> > $mday
> > [1] 12
> >
> > $mon
> > [1] 6
> >
> > $year
> > [1] -1893
> >
> > $wday
> > [1] 4
> >
> > $yday
> > [1] 192
> >
> > $isdst
> > [1] 0
> >
> > attr(,"tzone")
> > [1] "GMT"
> >
> >
> >
> > Seems like POSIXlt is matrix in this case.
> >
> > Any suggestions?
> >
> > Cheers,
> >
> > B
> > _________________________________________________________________
> > [[elided Hotmail spam]]
> >
> >        [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-help@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.
> >

_________________________________________________________________
Need to know the score, the latest news, or you need your HotmailĀ®-get your 
"fix".

        [[alternative HTML version deleted]]

______________________________________________
R-help@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.

Reply via email to