[R] Finding the last value before a certain date

Eik Vettorazzi E.Vettorazzi at uke.de
Thu Jul 19 10:12:41 CEST 2012


Hi Robert,
how about this (assuming your data.frame is ordered by date):

tmp<-read.table(textConnection("        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=T,colClasses=c(date="Date"))
tmp[max(which(tmp$date<as.Date("2010-10-06"))),"y"]

hth.

Am 19.07.2012 09:42, schrieb Robert Latest:
> 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 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.
> 


-- 
Eik Vettorazzi

Department of Medical Biometry and Epidemiology
University Medical Center Hamburg-Eppendorf

Martinistr. 52
20246 Hamburg

T ++49/40/7410-58243
F ++49/40/7410-57790

--
Pflichtangaben gemäß Gesetz über elektronische Handelsregister und Genossenschaftsregister sowie das Unternehmensregister (EHUG):

Universitätsklinikum Hamburg-Eppendorf; Körperschaft des öffentlichen Rechts; Gerichtsstand: Hamburg

Vorstandsmitglieder: Prof. Dr. Guido Sauter (Vertreter des Vorsitzenden), Dr. Alexander Kirstein, Joachim Prölß, Prof. Dr. Dr. Uwe Koch-Gromus 



More information about the R-help mailing list