[R] Help with Dates
Alex Park
alex.park1 at ntlworld.com
Thu Jul 19 21:35:25 CEST 2007
R
I am taking an excel dataset and reading it into R using read.table.
(actually I am dumping the data into a .txt file first and then reading data
in to R).
Here is snippet:
> head(data);
Date Price Open.Int. Comm.Long Comm.Short net.comm
1 15-Jan-86 673.25 175645 65910 28425 37485
2 31-Jan-86 677.00 167350 54060 27120 26940
3 14-Feb-86 680.25 157985 37955 25425 12530
4 28-Feb-86 691.75 162775 49760 16030 33730
5 14-Mar-86 706.50 163495 54120 27995 26125
6 31-Mar-86 709.75 164120 54715 30390 24325
The dataset runs from 1986 to 2007.
I want to be able to take subsets of my data based on date e.g. data between
2000 - 2005.
As it stands, I can't work with the dates as they are not in correct format.
I tried successfully converting the dates to just the year using:
transform(data, Yr = format(as.Date(as.character(Date),format = '%d-%b-%y'),
"%y")))
This gives the following format:
Date Price Open.Int. Comm.Long Comm.Short net.comm Yr
1 15-Jan-86 673.25 175645 65910 28425 37485 86
2 31-Jan-86 677.00 167350 54060 27120 26940 86
3 14-Feb-86 680.25 157985 37955 25425 12530 86
4 28-Feb-86 691.75 162775 49760 16030 33730 86
5 14-Mar-86 706.50 163495 54120 27995 26125 86
6 31-Mar-86 709.75 164120 54715 30390 24325 86
I can subset for a single year e.g:
head(subset(df, Yr =="00")
But how can I subset for multiple periods e.g 00- 05? The following won't
work:
head(subset(df, Yr =="00" & Yr=="01")
or
head(subset(df, Yr = c("00","01","02","03")
I can't help but feeling that I am missing something and there is a simpler
route.
I leafed through R newletter 4.1 which deals with dates and times but it
seemed that strptime and POSIXct / POSIXlt are not what I need either.
Can anybody help me?
Regards
Alex
More information about the R-help
mailing list