If you need to do this for a lot of dates findInterval() will do it faster. E.g.,
> f <- function(dates, data) { + i <- findInterval(dates, data$date) + i[i==0] <- NA # before first data$date + data[i, ] + } > xx <- as.Date(c("2010-10-06", "2010-10-25", "2009-01-01", "2011-12-31")) > cbind(xx, f(xx, dat)) xx date y 2 2010-10-06 2010-10-04 1968 5 2010-10-25 2010-10-24 3496 NA 2009-01-01 <NA> NA 6 2011-12-31 2010-10-31 3958 Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com > -----Original Message----- > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On > Behalf Of Rui Barradas > Sent: Thursday, July 19, 2012 1:11 AM > To: Robert Latest > Cc: r-help@r-project.org > Subject: Re: [R] Finding the last value before a certain date > > Hello, > > Try the following. > > > dat <- read.table(text=" > date y > 1 2010-09-27 1356 > 2 2010-10-04 1968 > 3 2010-10-11 2602 > 4 2010-10-17 3116 > 5 2010-10-24 3496 > 6 2010-10-31 3958 > ", header=TRUE, stringsAsFactors=FALSE) > > dat$date <- as.Date(dat$date) > str(dat) > search <- as.Date("2010-10-06") > max(which(dat$date <= search)) > dat$y[ix] > > > Hope this helps, > > Rui Barradas > > Em 19-07-2012 08:42, Robert Latest escreveu: > > Hello all, > > > > I have a dataframe that looks like this: > > > > head(df) > > date y > > 1 2010-09-27 1356 > > 2 2010-10-04 1968 > > 3 2010-10-11 2602 > > 4 2010-10-17 3116 > > 5 2010-10-24 3496 > > 6 2010-10-31 3958 > > > > I need a function that, given any date, returns the y value > > corresponding to the given date or the last day before the given date. > > > > Example: > > > > Input: as.Date("2010-10-06"). Output: 1968 (because the last value is > > from 2010-10-04) > > > > I've been tinkering with this for an hour now, without success. I > > think the solution is either surprisingly complicated or surprisingly > > simple. > > > > Thanks, > > robert > > > > ______________________________________________ > > R-help@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@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@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.