[R] selecting by date (was Matrix Indexing)

Prof Brian Ripley ripley at stats.ox.ac.uk
Mon Nov 8 08:21:02 CET 2004


This is about indexing a data frame: `matrix indexing' is something 
different.

On Sun, 7 Nov 2004, Kim Fai Wong wrote:

> 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.

Well, it isn't going to work as the file is not Comma Separated Values.
Perhaps you need to look at ?read.table and tell us exactly what you 
propose to use.  I am guessing the first column will become row names.

When you have read this in, `inputframe' is a data frame, and not a 
matrix.

> 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.

dates <- as.Date(row.names(inputframe), format="%m/%d/%y")
inputframe[dates >= start_date & dates < end_date, ]

where start_date and end_date are dates (not character strings in some 
strange non-ISO format).

> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Your reading the posting guide and following its advice would be 
appreciated, including reading `An Introduction to R'.

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595




More information about the R-help mailing list