# [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