You can try this:
dates <- df$date[df$temp==15]
one.month.before <- sapply(strsplit(dates, "-"), function(x)
paste(x[1], sprintf("%02d", as.numeric(x[2])-1), x[3],
sep="-"))
df[df$date %in% one.month.before,]
Ben
On 8/18/05, alessandro carletti <alxmilton at yahoo.it>
wrote:> Hi everybody,
> could anyone help me in finding a way for selecting
> from a dataframe each row that comes before another
> that matches a condition?
>
> EXAMPLE:
> df
> raw.number name date temp
> 1 aaa 2001-04-15 15
> 2 aaa 2001-01-15 12
> 3 aaa 2001-03-15 13
> ...
> i-1 bbb 2002-04-15 15
> i bbb 2002-03-15 14
>
> the condition is:
> df$temp==15
> matching raws are 1 and i-1:
> I need something to select (only) rows where date=one
> month before the matching raws, so raws 3 and i.
> (the variable name has more than one level)
> Thanks
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
http://www.R-project.org/posting-guide.html
>