Thank you.<br><br><div class="gmail_quote">On Mon, Aug 6, 2012 at 10:05 AM, Matthew Dowle <span dir="ltr"><<a href="mailto:mdowle@mdowle.plus.com" target="_blank">mdowle@mdowle.plus.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Yes this is a bug, already reported:  #2162 "Internal error with<br>
simultanous join (with missing groups) and group by in 1.8.2"<br>
<br>
<a href="https://r-forge.r-project.org/tracker/index.php?func=detail&aid=2162&group_id=240&atid=975" target="_blank">https://r-forge.r-project.org/tracker/index.php?func=detail&aid=2162&group_id=240&atid=975</a><br>

<br>
Will fix and add tests.  Thanks for reporting.  Have added link to your<br>
example to the report.<br>
<br>
Matthew<br>
<div><div class="h5"><br>
> I recently updated from data.table 1.7.1 to 1.8.2 and found that my old<br>
> code using data.table<br>
> no longer works.  I'm not sure if this is being caused by a bug in the new<br>
> version of data.table<br>
> or an intentional change to the way data.table works.<br>
><br>
> In 1.7.1, I could do the following:<br>
>> DT <- data.table(x=rep(c("a","b","c"),each=3), y=c(1,3,6), v=1:9)<br>
>> setkey(DT, x)<br>
>> DT[J(c("a", "b", "d")), sum(v), by=x]<br>
>         x V1<br>
> [1,]    a  6<br>
> [2,]    b 15<br>
> [3,] <NA> NA<br>
><br>
><br>
> In 1.8.2, however, I get an error message:<br>
>> DT <- data.table(x=rep(c("a","b","c"),each=3), y=c(1,3,6), v=1:9)<br>
>> setkey(DT, x)<br>
>> DT[J(c("a", "b", "d")), sum(v), by=x]<br>
> Error in if (any(irows < 1L | irows > nrow(x))) stop("Internal error: some<br>
> irows<1 or >nrow(x)") :<br>
>   missing value where TRUE/FALSE needed<br>
><br>
><br>
> Looking through the NEWS file I don't see any mention of this change (It's<br>
> possible that I just missed it).<br>
> If this an intentional change, I would ask that you consider reverting it.<br>
>  It seems inconsistent that<br>
> DT[J(c("a", "b", "d"))] adds a new row to the table, but DT[J(c("a", "b",<br>
> "d")), sum(v), by=x]<br>
> causes an error.<br>
><br>
> Personally I think the following makes the most sense.  But just reverting<br>
> back to what it did in 1.7.1<br>
> seems better than having an error.<br>
>> DT[J(c("a", "b", "d")), sum(v), by=x]<br>
>      x V1<br>
> [1,] a  6<br>
> [2,] b 15<br>
> [3,] d NA<br>
><br>
><br>
> Thank you,<br>
> Mike<br>
</div></div>> _______________________________________________<br>
> datatable-help mailing list<br>
> <a href="mailto:datatable-help@lists.r-forge.r-project.org">datatable-help@lists.r-forge.r-project.org</a><br>
> <a href="https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help" target="_blank">https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help</a><br>
<br>
<br>
</blockquote></div><br>