As promised, here is a reproducible example:<br><br><blockquote>    library(data.table)<br>    set.seed(0)<br>    dfA = data.frame(i = 1:20, j = rep(1:2, 10), k = rep(1:4, 5), A = rnorm(20))<br>    dfB = data.frame(j = rep(1:2, 2), k = 1:4, B = rnorm(4))<br>
    <br>    dtA = as.data.table(dfA)<br>    dtB = as.data.table(dfB)<br>    <br>    dtC = merge(dtA, dtB, by = c("j","k"), all.x = TRUE)<br>    <br></blockquote>The first rows of dtC are:<br><blockquote style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote">
>     dtC<br>       i j k            A          B<br> [1,]  1 1 1  1.262954285 -0.2242679<br> [2,]  5 1 1  0.414641434 -0.2242679<br> [3,]  9 1 1 -0.005767173  0.1333364<br> [4,] 13 1 1 -1.147657009  0.3773956<br></blockquote>
<br>While the entries for dtB are:<br><br><blockquote style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote">>     dtB<br>     j k          B<br>[1,] 1 1 -0.2242679<br>
[2,] 2 2  0.3773956<br>[3,] 1 3  0.1333364<br>[4,] 2 4  0.8041895<br></blockquote><div><br>It seems that the "B" entries in dtC are definitely coming from dtB, but not the expected rows (i.e. the first one in the above example).<br>
<br><br></div><br><div> <br></div><br><br><br><div class="gmail_quote">On Tue, Jan 31, 2012 at 8:53 AM, DM <span dir="ltr"><<a href="mailto:tb2usd@gmail.com">tb2usd@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Good morning,<br><br>I found a discrepancy in results from two scripts that were run with the same data with versions 1.7.6 and 1.7.8 (and now 1.7.9) of data.table.  It seems that the root issue is differences in `merge.data.table`.<br>

<br>I have two objects dtA and dtB, with columns (i, j, k, A) and (j, k, B), respectively.  I merge these via:<br><br>dtC = merge(dtA, dtB, by = c("k", "j"), all.x = TRUE)<br><br>NB: In dtA, many rows have matching values of (j, k) (i.e. these are not unique per row), while they are unique in dtB.  In addition, there are no keys assigned to dtA nor dtB, though it seems V1.7.9 creates keys (k,j) for dtC (haven't yet checked for V1.7.6, but it doesn't bother me).<br>

<br>In V1.7.6, for dtC rows with matching (j,k) entries, the B entries also match, which is the expected behavior.  In V1.7.8 and V1.7.9, this is no longer the case.  I am not sure where the B entries come from.<br><br>I will attempt to generate a reproducible example, and follow-up.<br>

</blockquote></div><br>