<div dir="ltr">Not really. Because it still doing a "by". Meaning, for every grouping in "by"  - abs(x-y) will be evaluated. If there are 1e5 groups, there'll be 1e5 calls. And that can be expensive depending on the function + the time to call eval from within C. <div>
<br></div><div>However, since it's not necessary to do a by-without-by, we can perform the join and then compute once the difference between columns. There's no grouping, no eval from C, and no multiple calls to abs. Hope this clears it up?</div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Feb 6, 2014 at 2:45 PM, Gabor Grothendieck <span dir="ltr"><<a href="mailto:ggrothendieck@gmail.com" target="_blank">ggrothendieck@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">On Thu, Feb 6, 2014 at 8:23 AM, Arunkumar Srinivasan<br>
<<a href="mailto:aragorn168b@gmail.com">aragorn168b@gmail.com</a>> wrote:<br>
> In this case? Then nothing'll be different.<br>
><br>
> I'm not sure what you mean because the problem here is that this *doesn't*<br>
> require *by-without-by* as the j-operations are not necessary to be<br>
> performed *during* the join. So, we can just perform the join and then take<br>
> the "abs" once at the end, rather than calling it about 1e5+ times (the<br>
> number of groups).<br>
><br>
> So, if your question is: "apart from this question, how would an explicit<br>
> by-without-by look like?", then I guess it'd be the same as the normal<br>
> aggregation, but "by" would take a data.table as well. This has not yet been<br>
> discussed or conceptualised. But this is how I imagine it to be:<br>
><br>
> DT1[, list(...), by=DT2]<br>
><br>
> Where, DT1's key columns have to be set as usual.<br>
<br>
</div>My original code was this:<br>
<br>
dtx <- data.table(x = which(x))<br>
dty <- data.table(y = which(y), key = "y")<br>
dty[dtx, abs(x - y), roll = "nearest"]<br>
<br>
With that feature would this code not use by-within-by and therefore<br>
become fast?<br>
</blockquote></div><br></div>