<span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">Thank you for clarifying this! I was getting stuck on this. Yes the syntax and speedup are very nice indeed. I am dealing with 10 million row tables so it is very useful for me.</span><div>
<font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><br></span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;">Incidentally, I also asked this question on StackOverflow, and updated it based on your reply</span></font></div>
<div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><a href="http://stackoverflow.com/questions/4764434/r-when-using-data-table-how-do-i-get-columns-of-y-when-i-do-xy">http://stackoverflow.com/questions/4764434/r-when-using-data-table-how-do-i-get-columns-of-y-when-i-do-xy</a></span></font></div>
<div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><br></span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><br>
</span></font><br><div class="gmail_quote">On Sat, Jan 22, 2011 at 4:48 PM, Matthew Dowle <span dir="ltr">&lt;<a href="mailto:mdowle@mdowle.plus.com">mdowle@mdowle.plus.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Welcome to the list.<br>
You&#39;re right, the FAQ is wrong.<br>
FR#1095 is &quot;Turn back on &#39;join inherited scope&#39;&quot;.<br>
This was a known problem in NEWS at v1.4 and still is.<br>
When the grouping code was moved from R into C in v1.4 that feature<br>
wasn&#39;t something that made it into the port.<br>
<br>
Glad you appreciate the neater syntax and yes it should be faster (the<br>
more columns in x and y the faster the speed up could be, over a merge<br>
followed by a query).<br>
<br>
I&#39;ll try and take a look soon.<br>
<br>
Matthew<br>
<div><div></div><div class="h5"><br>
<br>
On Sat, 2011-01-22 at 10:41 -0500, Prasad Chalasani wrote:<br>
&gt; The Data-table FAQ 1.11 states:<br>
&gt;<br>
&gt;<br>
&gt; &quot;When you write x[y,foo*boo], data.table automatically inspects the j<br>
&gt; expression to see which columns it uses.<br>
&gt; It will only subset, or group, those columns only. Memory is only<br>
&gt; created for the columns the j uses.<br>
&gt;<br>
&gt; Let’s say foo is in x, and boo is in y (along with 20 other columns in<br>
&gt; y).<br>
&gt;<br>
&gt; Isn’t x[y,foo*boo] quicker to program and quicker to run than a merge<br>
&gt; step followed by another subset step ?&quot;<br>
&gt;<br>
&gt;<br>
&gt; Contrary to what it says above, I get an error when I try to access a<br>
&gt; y-column in the &quot;j&quot; argument of x[y,j].<br>
&gt;<br>
&gt; See the sequence of code below.<br>
&gt;<br>
&gt;<br>
&gt; &gt; x &lt;- data.table( foo = c(1,1,1,2,2,3), a = 1:6, key = &#39;foo&#39;)<br>
&gt;<br>
&gt;<br>
&gt; &gt; y &lt;- data.table( foo = c(1,2), boo = 10:11, key = &#39;foo&#39;)<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; # the below works as expected<br>
&gt;<br>
&gt; &gt; x[y]<br>
&gt;<br>
&gt;      foo a<br>
&gt;<br>
&gt; [1,]   1 1<br>
&gt;<br>
&gt; [2,]   2 4<br>
&gt;<br>
&gt;<br>
&gt; &gt; with( merge(x,y), foo*boo)<br>
&gt;<br>
&gt; [1] 10 10 10 22 22<br>
&gt;<br>
&gt;<br>
&gt; # I want to acheive the same result as the above using the<br>
&gt;<br>
&gt; # syntactically more compact (and faster?) code below:<br>
&gt;<br>
&gt;<br>
&gt; &gt; x[y, foo * boo ]<br>
&gt;<br>
&gt; Error in eval(expr, envir, enclos) : object &#39;boo&#39; not found<br>
&gt;<br>
&gt;<br>
&gt; So is the FAQ just wrong, or am I misunderstanding something?<br>
&gt;<br>
&gt;<br>
</div></div>&gt; _______________________________________________<br>
&gt; datatable-help mailing list<br>
&gt; <a href="mailto:datatable-help@lists.r-forge.r-project.org">datatable-help@lists.r-forge.r-project.org</a><br>
&gt; <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></div>