I have a data frame as below
    p1_bin  and f1_bin  are calculated by cut function by me with 
Bins <- function(x) cut(x, breaks = c(0, seq(1, 1000, by = 5)), labels = 1:200)  
    binned <- as.data.frame (sapply(df[,-1], Bins))
    colnames(binned) <- paste("Bin", colnames(binned), sep = "_")
    df<- cbind(df, binned) 
Now how to calculate mean/avg for previous two years and replace in NA values with in that bin
for example :  at row-5 value is NA for p1 and f1 is 30 with corresponding bin 7.. now replace NA with previous 2 years mean for same bin (7) ,i.e 
df
ID year       p1     f1       Bin_p1     Bin_f1    
 1  2013       20     30        5           7
 2  2013       24     29        5           7
 3  2014       10     16        2           3
 4  2014       11     17        2           3
 5  2015       NA     30        NA          7
 6  2016       10     NA        2           NA
df1
ID year       p1     f1       Bin_p1     Bin_f1    
 1  2013       20     30        5           7
 2  2013       24     29        5           7
 3  2014       10     16        2           3
 4  2014       11     17        2           3
 5  2015   **22**     30        NA          7
 6  2016       10  **16.5**     2           NA
Thanks in advance
 
     
    