title: Incorrect behavior with dplyr's left_join?
body: <p>Surely this is not intended?  Is this something that happens in other parts of <code>dplyr</code>'s functionality and should I be concerned?  I love the performance and hate <code>data.table</code> syntax.  Is there an alternative to <code>dplyr</code> and <code>data.table</code> that is currently safe to use and still high performance?</p>
  
  <pre><code>A &lt;- structure(list(ORDER = c(30305720L, 30334659L, 30379936L, 
                       30406397L, 30407697L, 30431950L), 
                      COST = c("0", "", "11430.52", "20196.279999999999", "0", "10445.99")), 
                 .Names = c("ORDER", "COST"), 
                 row.names = c(NA, 6L), 
                 class = "data.frame")
  
  B &lt;- structure(list(ORDER = c(30334659, 30379936, 30406397, 30407697, 30431950), 
                      AREA = c(0, 2339, 2162, 23040, 475466)), 
                 .Names = c("ORDER", "AREA"), 
                 row.names = c(4L, 8L, 11L, 12L, 15L), 
                 class = c("tbl_df", "tbl", "data.frame"))
  </code></pre>
  
  <p>Garbage results:</p>
  
  <pre><code>left_join(A, B)
    ORDER    COST                 AREA
  1 30305720                  0   NA
  2 30334659                      NA
  3 30379936           11430.52   NA
  4 30406397 20196.279999999999   NA
  5 30407697                  0   NA
  6 30431950           10445.99   NA
  </code></pre>
  
  <p>Effective results:</p>
  
  <pre><code>merge(A, B, all.x=T, all.y=F)
       ORDER               COST   AREA
  1 30305720                  0     NA
  2 30334659                         0
  3 30379936           11430.52   2339
  4 30406397 20196.279999999999   2162
  5 30407697                  0  23040
  6 30431950           10445.99 475466
  </code></pre>