title: Replace NA in column with value in adjacent column
body: <p>This question is related to a post with a similar title (<a href="https://stackoverflow.com/questions/13514266/replace-na-in-an-r-vector-with-adjacent-values">replace NA in an R vector with adjacent values</a>). I would like to scan a column in a data frame and replace NA's with the value in the adjacent cell. In the aforementioned post, the solution was to replace the NA not with the value from the adjacent vector (e.g. the adjacent element in the data matrix) but was a conditional replace for a fixed value. Below is a reproducible example of my problem:</p>
  
  <pre><code>UNIT &lt;- c(NA,NA, 200, 200, 200, 200, 200, 300, 300, 300,300)
  STATUS &lt;-c('ACTIVE','INACTIVE','ACTIVE','ACTIVE','INACTIVE','ACTIVE','INACTIVE','ACTIVE','ACTIVE',
                      'ACTIVE','INACTIVE') 
  TERMINATED &lt;- c('1999-07-06' , '2008-12-05' , '2000-08-18' , '2000-08-18' ,'2000-08-18' ,'2008-08-18',
                          '2008-08-18','2006-09-19','2006-09-19' ,'2006-09-19' ,'1999-03-15') 
  START &lt;- c('2007-04-23','2008-12-06','2004-06-01','2007-02-01','2008-04-19','2010-11-29','2010-12-30',
                     '2007-10-29','2008-02-05','2008-06-30','2009-02-07')
  STOP &lt;- c('2008-12-05','4712-12-31','2007-01-31','2008-04-18','2010-11-28','2010-12-29','4712-12-31',
                    '2008-02-04','2008-06-29','2009-02-06','4712-12-31')
  #creating dataframe
  TEST &lt;- data.frame(UNIT,STATUS,TERMINATED,START,STOP); TEST                   
  
    UNIT   STATUS TERMINATED      START       STOP
  1    NA   ACTIVE 1999-07-06 2007-04-23 2008-12-05
  2    NA INACTIVE 2008-12-05 2008-12-06 4712-12-31
  3   200   ACTIVE 2000-08-18 2004-06-01 2007-01-31
  4   200   ACTIVE 2000-08-18 2007-02-01 2008-04-18
  5   200 INACTIVE 2000-08-18 2008-04-19 2010-11-28
  6   200   ACTIVE 2008-08-18 2010-11-29 2010-12-29
  7   200 INACTIVE 2008-08-18 2010-12-30 4712-12-31
  8   300   ACTIVE 2006-09-19 2007-10-29 2008-02-04
  9   300   ACTIVE 2006-09-19 2008-02-05 2008-06-29
  10  300   ACTIVE 2006-09-19 2008-06-30 2009-02-06
  11  300 INACTIVE 1999-03-15 2009-02-07 4712-12-31
  
  #using the syntax for a conditional replace and hoping it works :/          
  TEST$UNIT[is.na(TEST$UNIT)] &lt;- TEST$STATUS; TEST 
  
     UNIT   STATUS TERMINATED      START       STOP
  1     1   ACTIVE 1999-07-06 2007-04-23 2008-12-05
  2     2 INACTIVE 2008-12-05 2008-12-06 4712-12-31
  3   200   ACTIVE 2000-08-18 2004-06-01 2007-01-31
  4   200   ACTIVE 2000-08-18 2007-02-01 2008-04-18
  5   200 INACTIVE 2000-08-18 2008-04-19 2010-11-28
  6   200   ACTIVE 2008-08-18 2010-11-29 2010-12-29
  7   200 INACTIVE 2008-08-18 2010-12-30 4712-12-31
  8   300   ACTIVE 2006-09-19 2007-10-29 2008-02-04
  9   300   ACTIVE 2006-09-19 2008-02-05 2008-06-29
  10  300   ACTIVE 2006-09-19 2008-06-30 2009-02-06
  11  300 INACTIVE 1999-03-15 2009-02-07 4712-12-31
  </code></pre>
  
  <p>The outcome should be: </p>
  
  <pre><code>      UNIT   STATUS TERMINATED      START       STOP
  1   ACTIVE   ACTIVE 1999-07-06 2007-04-23 2008-12-05
  2 INACTIVE INACTIVE 2008-12-05 2008-12-06 4712-12-31
  3      200   ACTIVE 2000-08-18 2004-06-01 2007-01-31
  4      200   ACTIVE 2000-08-18 2007-02-01 2008-04-18
  5      200 INACTIVE 2000-08-18 2008-04-19 2010-11-28
  6      200   ACTIVE 2008-08-18 2010-11-29 2010-12-29
  7      200 INACTIVE 2008-08-18 2010-12-30 4712-12-31
  8      300   ACTIVE 2006-09-19 2007-10-29 2008-02-04
  9      300   ACTIVE 2006-09-19 2008-02-05 2008-06-29
  10     300   ACTIVE 2006-09-19 2008-06-30 2009-02-06
  11     300 INACTIVE 1999-03-15 2009-02-07 4712-12-31
  </code></pre>