[R] vector of factors to POSIXlt

Gabor Grothendieck ggrothendieck at myway.com
Sat Feb 7 03:51:39 CET 2004


These are the 9 elements of POSIXlt.
For example, try this to see the 9 components:

   unclass(a2)

The day of the month, which is what
you are looking for, is a2$mday .

If you want an 87 element vector of dates you probably
want to store them as POSIXct:

   length(as.POSIXct(a2))

or as chron dates:

   require(chron)
   length(chron(as.character(rcptdt)))

Note that you could also get the day of the month this way:

   require(chron)
   month.day.year(chron(as.character(rcptdt)))$day

Also note that your format call can be shortened to format(rcptdt)
or as.character(rcptdt) since, at that point, you are not yet dealing
with dates.

---
Date:   Fri, 6 Feb 2004 14:10:46 -0600  
From:   Siddique, Amer <Amer.Siddique at ssa.gov>
To:   R (r-help at stat.math.ethz.ch) <r-help at stat.math.ethz.ch> 
Subject:   [R] vector of factors to POSIXlt 

 
hello,
I have a vector of factors
> str(rcptdt)
Factor w/ 51 levels "1/10/03","1/13/03",..:
> length(rcptdt)
[1] 87

which i want to convert to class POSIXlt to extract the day, so:
a1<-format(rcptdt,"%m/%d/%y")
> length(a1)
[1] 87

and:
a2<-strptime(a1, "%m/%d/%y")
str(a2)
`POSIXlt', format: chr [1:87] "2002-04-18" "2002-07-19" "2002-08-02"
"2002-08-14" ...
> a2[1]-a2[2]
Time difference of -92 days

but the length differs 
> length(a2)
[1] 9

and i cant update rcptdt...

> version
_ 
platform i386-pc-mingw32
arch i386 
os mingw32 
system i386, mingw32 
status 
major 1 
minor 8.1 
year 2003 
month 11 
day 21 
language R 

thanks,

amer
research analyst
disability det. bureau
madtown-wi-usa




More information about the R-help mailing list