<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html><body>
<p> </p>
<p>Yes indeed it's intended and there is this in FAQ 2.17 (differences between DF and DT) :</p>
<pre>    "DT[NA] returns 1 row of NA, but DF[NA] returns a copy of DF containing NA throughout. The<br />symbol NA is type logical in R, and is therefore recycled by [.data.frame. Intention was<br />probably DF[NA_integer_]. [.data.table does this automatically for convenience."</pre>
<pre> </pre>
<pre>I see what you mean Gabor about that sentence in ?data.table. Thanks, will improve that wording.</pre>
<pre> </pre>
<pre>Matthew</pre>
<p> </p>
<p>On 24.05.2013 17:40, Arunkumar Srinivasan wrote:</p>
<blockquote type="cite" style="padding-left:5px; border-left:#1010ff 2px solid; margin-left:5px; width:100%"><!-- html ignored --><!-- head ignored --><!-- meta ignored -->
<div>Gabor,</div>
<div>Not sure if this is intended, but the there's a code that explicitly assigns NA_integer_ if `i` is NA in `[.data.table`:</div>
<div>
<div>if (is.logical(i)) {</div>
<div>    if (identical(i, NA)) </div>
<div>        i = NA_integer_</div>
<div>    else i[is.na(i)] = FALSE</div>
<div>}</div>
</div>
<div>So, if `i` is JUST `NA`, then it's replaced with NA_integer_. If there are more than 1 element and i has NA in them, they are replaced with FALSE.</div>
<div>For ex: doing </div>
<div>DT1[as.logical(c(NA, NA))]</div>
<div>would result in recycling and lead to a 0 rows and 1 column empty data.table.</div>
<div>
<div>Arun</div>
</div>
<p style="color: #a0a0a8;">On Friday, May 24, 2013 at 6:29 PM, Gabor Grothendieck wrote:</p>
<blockquote style="border-left-style: solid; border-width: 1px; margin-left: 0px; padding-left: 10px;">
<div>
<div>
<div>The ?data.table page describing arg i says:</div>
<div>"integer and logical vectors work the same way they do in</div>
<div>[.data.frame. Other than NAs in logical i are treated as FALSE and a</div>
<div>single NA logical is not recycled to match the number of rows, as it</div>
<div>is in[.data.frame."</div>
<div>however, I get this:</div>
<blockquote type="cite" style="padding-left:5px; border-left:#1010ff 2px solid; margin-left:5px; width:100%">
<div>packageVersion("data.table")</div>
</blockquote>
<div>[1] ‘1.8.9’</div>
<blockquote type="cite" style="padding-left:5px; border-left:#1010ff 2px solid; margin-left:5px; width:100%">
<div>
<div>DT1 <- data.table(a = 1:5)</div>
<div>DT1[as.logical(NA)]</div>
</div>
</blockquote>
<div>a</div>
<div>1: NA</div>
<div>so it seems that if there is a single logical NA it not only is not</div>
<div>recycled but it also is not regarded as FALSE (whereas the quoted</div>
<div>statement seems to say a logical NA is regarded as FALSE in all</div>
<div>cases).</div>
<div>Is this intended?</div>
<div>--</div>
<div>Statistics & Software Consulting</div>
<div>GKX Group, GKX Associates Inc.</div>
<div>tel: 1-877-GKX-GROUP</div>
<div>email: ggrothendieck at <a href="http://gmail.com">gmail.com</a></div>
<div>_______________________________________________</div>
<div>datatable-help mailing list</div>
<div><a href="mailto:datatable-help@lists.r-forge.r-project.org">datatable-help@lists.r-forge.r-project.org</a></div>
<div><a href="https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help">https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help</a></div>
</div>
</div>
</blockquote>
</blockquote>
<p> </p>
<div> </div>
</body></html>