[R] Matrix Indexing

Gabor Grothendieck ggrothendieck at myway.com
Mon Nov 8 05:38:50 CET 2004


Kim Fai Wong <gokim19 <at> hotmail.com> writes:

: 
: Hi,
: 
: I have the following problem.
: In a csv file I have under column A, the date, and column B, the prices.
: Thus, for example, the file looks something like this ->
: 
: 1/31/04      2.5
: 2/1/04        2.6
: ...
: 4/12/04       3.5
: 
: Basically,  I use the function inputframe = read.csv( )
: which reads the csv file into the inputframe.
: 
: My question is, how can I make a function that has, as inputs, start_date 
: and end_date,
: so that the inputframe would not return all of these prices but only the 
: ones during the
: period I input?
: 
: For example, if I input 3/1/04 and 3/11/04, the inputframe only contains the 
: prices for
: this period.
: 
: Any help is appreciated!!
: 


Note that read.csv produces data frames, not matrices.  Lets
assume your data frame is called DF.

First make sure your A column is actually stored as some sort
of date object and not as a factor or character string.  You may
need something like this if its not.  (We are using chron here
since m/d/y is its default format so its particularly 
consistent with your data.):

	library(chron)
	DF$A <- chron(as.character(DF$A))

Now use subset:

	DF2 <- subset(DF, A >= chron("3/1/04") & A <= chron("3/11/04"))

You could alternately use Date class.  See R News 4/1 for an
article about all this.




More information about the R-help mailing list