title: subseting a data frame is not working when keyed on an NA value
body: <p>I have a data frame like this</p>
  
  <p>xx</p>
  
  <pre><code>dput(head(xx,10))
  structure(list(JobName = c("EXBCV01D", "EXBCV01D", "EXBCV01D", 
  "EXBCV01D", "EXBCV01D", "EXBCV01D", "EXBCV01D", "EXBCV01D", "EXBCV01D", 
  "EXBCV01D"), Date = c(120820L, 120817L, 120816L, 120815L, 120814L, 
  120813L, 120810L, 120809L, 120808L, 120807L), TargetDate = c(NA_integer_, 
  NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_, 
  NA_integer_, NA_integer_, NA_integer_, NA_integer_)), .Names = c("JobName", 
  "Date", "TargetDate"), row.names = c(NA, 10L), class = "data.frame")
  </code></pre>
  
  <p>I need to grab all the rows that target is not </p>
  
  <p>I am doing this
        xxx&lt;-with(xx, xx[!is.na(TargetDate), ])</p>
  
  <p>I get this:</p>
  
  <pre><code>head(xxx)
        JobName   Date TargetDate
  2689 EXBCV06D 120820         -1
  2690 EXBCV06D 120820         -1
  2691 EXBCV06D 120820         -1
  2692 EXBCV06D 120820         -1
  2693 EXBCV06D 120817         -1
  2694 EXBCV06D 120817         -1
  </code></pre>
  
  <p>I am getting multiple  JobName for the same date. Something weird is happening here.</p>