# [R] (almost) rolling function or fill?

Andras Farkas motyoc@k@ @end|ng |rom y@hoo@com
Mon Jun 8 21:28:35 CEST 2020

```Hello,
please see if you have a thought on how to achieve the following:
we have:
df<-data.frame(a=Sys.Date()+1:10,               b=Sys.Date()+c(NA,NA,NA,rep(3,4),NA,NA,3),               c=Sys.Date()+c(NA,NA,NA,rep(9,4),NA,NA,9))

the idea I have difficulty wrapping my head around is to do the following: I need the system to look at df\$a by row (lets call it the index row) and look at df\$b and df\$c 1 row before the given row in df\$a  (lets call it index row -1) and evaluate if the index row value in df\$a falls into the range (>= and <=) of the index row -1 values in df\$b and df\$c. If it does, then copy over the index row -1 values in df\$b and df\$c into the index row in df\$b and df\$c, if not place an NA in both cells of the index row in df\$b and df\$c.
examples:
1. the date value in df\$a is between df\$b and df\$c so we can copy the values in df\$b and df\$c into df\$b and df\$c2.  the date value in df\$a is between df\$b and df\$c (as we copied it in in step 1)  so we can copy the values in df\$b and df\$c into df\$b and df\$c3.  the date value in df\$a is NOT between df\$b and df\$c (as we copied it in in step 2)  so we can place NA in df\$b and df\$c

also would like to do this going up, too, similar to fill(...,"downup"). On the end we would want to have this:
dfwanted<-data.frame(a=Sys.Date()+1:10,               b=Sys.Date()+c(NA,NA,rep(3,7),NA),               c=Sys.Date()+c(NA,NA,rep(9,7),NA))