[R] Subsetting data by date

John Kane jrkrideau at yahoo.ca
Mon Jul 21 16:53:02 CEST 2008


?subset is one of several ways.  You don't need a loop.  Loops are BAD in R :)


--- On Mon, 7/21/08, Williams, Robin <robin.williams at metoffice.gov.uk> wrote:

> From: Williams, Robin <robin.williams at metoffice.gov.uk>
> Subject: Re: [R] Subsetting data by date
> To: "Gabor Grothendieck" <ggrothendieck at gmail.com>
> Cc: R-help at r-project.org
> Received: Monday, July 21, 2008, 10:41 AM
> And following on from my original question: 
> In another file I have the dates in numeric format,
> (ddmmyy). How could
> I extract the data between 01/05/97 and 30/09/97, etc? Do I
> need to
> implement some sort of loop? 
> 
> 
> Robin Williams 
> Met Office summer intern - Health Forecasting 
> robin.williams at metoffice.gov.uk 
> -----Original Message-----
> From: Gabor Grothendieck [mailto:ggrothendieck at gmail.com] 
> Sent: Monday, July 21, 2008 3:26 PM
> To: Williams, Robin
> Cc: R-help at r-project.org
> Subject: Re: [R] Subsetting data by date
> 
> Continuing on, to just get points from May to Sep
> 
> mo <- as.numeric(format(time(z), "%m"))
> z.summer <- z[mo >= 5 & mo <= 9]
> 
> If in your case z is multivariate rather than univariate
> (as it is in
> our example) then it would be:
> z.summer <- z[mo >= 5 & mo <= 9, ]
> 
> On Mon, Jul 21, 2008 at 9:55 AM, Gabor Grothendieck
> <ggrothendieck at gmail.com> wrote:
> > Try this:
> >
> > Lines <- "Date,Temp
> > 1-Apr-1997,50
> > 3-Sept-2001,60"
> >
> > library(zoo)
> >
> > # function to reduce 4 char mos to 3 char convert.date
> <- function(x, 
> > format) as.Date(sub("(-...).-",
> "\\1-", x), format)
> >
> > # z <- read.zoo("myfile.csv", header =
> TRUE, sep = ",", FUN = 
> > convert.date, format = "%d-%b-%Y") z <- 
> > read.zoo(textConnection(Lines), header = TRUE, sep =
> ",", FUN = 
> > convert.date, format = "%d-%b-%Y")
> >
> > plot(z)
> >
> > If the dates are actually three letters, i.e. Sep and
> not Sept, then 
> > you could eliminate convert.date and simplify the
> read.zoo line to:
> >
> > z <- read.zoo(textConnection(Lines), header = TRUE,
> sep = ",", format 
> > = "%d-%b-%Y")
> >
> > See the zoo package documentation and its three
> vignettes as well as 
> > ?read.zoo ?strptime and ?plot.zoo and also look at the
> dates article
> in R News 4/1.
> >
> >
> > On Mon, Jul 21, 2008 at 9:31 AM, Williams, Robin 
> > <robin.williams at metoffice.gov.uk> wrote:
> >> Hi all,
> >>  Firstly I appologise if this question has been
> answered previously, 
> >> however searching of the archives and the internet
> generally has not 
> >> yielded any results.
> >>
> >>  I am looking in to the effects of summer weather
> conditions 
> >> (temperature, humidity etc), on the incidences of
> a breathing 
> >> disorder brought on through smoking (COPD). I am
> fairly new to R and 
> >> completely new to the idea of writing R scripts,
> subsetting 
> >> dataframes etc. I am working on a 12 week summer
> placement at the Met
> 
> >> Office, UK, having just finished my second year of
> a mathematics
> course at university.
> >>
> >>  Basically I have data between January 1 1997 and
> December 31 2007.
> >> However as I am only interest in the summer months
> (which I have 
> >> defined to be between May 1 and September 30), I
> would like to 
> >> extract the relevant data in R in a timely manner.
> Obviously I could 
> >> go and open my csv files in excel, cut and paste
> the relevant data, 
> >> etc, however I would like to maximise R's
> potential as I feel it will
> 
> >> stand me in better stead in the long run.
> >>  Currently the dates are in the form
> >> 1-Apr-1997,
> >> 3-Sept-2001,
> >> etc.
> >>  I will create a data.frame with date as one of
> the variables, the 
> >> others being (initially) temperature, humidity,
> and Admissions (the 
> >> number of hospital admissions for COPD
> exaserbations).
> >>  Please could somebody tell me if there is a
> simple way to extract 
> >> the data I want, and if so perhaps a sample
> command to get me going? 
> >> Do I first need to format the dates to some
> numeric-only format? As I
> 
> >> say, I could use Excel to create the files in the
> right format, but I
> 
> >> will be dealing with a lot more variables in the
> future (perhaps up 
> >> to 8) and so this will become a pain-staking
> process.
> >>
> >>  Please reply either on or off list.
> >>
> >> Many thanks for any help.
> >> Robin Williams
> >> Met Office summer intern - Health Forecasting 
> >> robin.williams at metoffice.gov.uk
> >>
> >>
> >>        [[alternative HTML version deleted]]
> >>
> >> ______________________________________________
> >> R-help at r-project.org mailing list
> >> https://stat.ethz.ch/mailman/listinfo/r-help
> >> PLEASE do read the posting guide 
> >> http://www.R-project.org/posting-guide.html
> >> and provide commented, minimal, self-contained,
> reproducible code.
> >>
> >
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained,
> reproducible code.


      __________________________________________________________________
[[elided Yahoo spam]]



More information about the R-help mailing list