[datatable-help] changing data.table by-without-by syntax to require a "by"
Eduard Antonyan
eduard.antonyan at gmail.com
Thu Apr 25 00:43:19 CEST 2013
I assumed they meant create a table :)
that looks cool, what's i.top ? I can get a very similar to yours result by
writing:
X[Y][, head(.SD, top[1]), by = a]
and I probably would want the following to produce your result (this might
depend a little on what exactly i.top is):
X[Y, head(.SD, i.top), by = a]
On Wed, Apr 24, 2013 at 5:28 PM, Matthew Dowle <mdowle at mdowle.plus.com>wrote:
> **
>
>
>
> That sentence on that linked webpage seems incorect English, since table
> is a noun not a verb. Should "table" be "join" perhaps?
>
> Anyway, by-without-by is often used with join inherited scope (JIS). For
> example, translating their example :
>
> 1> X = data.table(a=1:3,b=1:15, key="a")
> 1> X
> a b
> 1: 1 1
> 2: 1 4
> 3: 1 7
> 4: 1 10
> 5: 1 13
> 6: 2 2
> 7: 2 5
> 8: 2 8
> 9: 2 11
> 10: 2 14
> 11: 3 3
> 12: 3 6
> 13: 3 9
> 14: 3 12
> 15: 3 15
> 1> Y = data.table(a=c(1,2), top=c(3,4))
> 1> Y
> a top
> 1: 1 3
> 2: 2 4
> 1> X[Y, head(.SD,i.top)]
> a b
> 1: 1 1
> 2: 1 4
> 3: 1 7
> 4: 2 2
> 5: 2 5
> 6: 2 8
> 7: 2 11
> 1>
>
>
>
> If there was no by-without-by (analogous to CROSS BY), then how would that be done?
>
>
>
> On 24.04.2013 22:22, Eduard Antonyan wrote:
>
> By that you mean current behavior? You'd get current behavior by
> explicitly specifying the appropriate "by" (i.e. "by" equal to the key).
> Btw, I'm trying to understand SQL CROSS APPLY vs JOIN using
> http://explainextended.com/2009/07/16/inner-join-vs-cross-apply/, and I
> can't figure out how by-without-by (or with by-with-by for that matter:) )
> helps with e.g. the first example there:
> "We table table1 and table2. table1 has a column called rowcount.
>
> For each row from table1 we need to select first rowcount rows from table2,
> ordered by table2.id"
>
>
>
>
> On Wed, Apr 24, 2013 at 4:01 PM, Matthew Dowle <mdowle at mdowle.plus.com>wrote:
>
>> But then what would be analogous to CROSS APPLY in SQL?
>>
>> > I'd agree with Eduard, although it's probably too late to change
>> behavior
>> > now. Maybe for data.table.2? Eduard's proposal seems more closely
>> > aligned with SQL behavior as well (SELECT/JOIN, then GROUP, but only if
>> > requested).
>> >
>> > S.
>> >
>> >> Date: Mon, 22 Apr 2013 08:17:59 -0700
>> >> From: eduard.antonyan at gmail.com
>> >> To: datatable-help at lists.r-forge.r-project.org
>> >> Subject: Re: [datatable-help] changing data.table by-without-by
>> >> syntax to require a "by"
>> >>
>> >> I think you're missing the point Michael. Just because it's possible to
>> >> do it
>> >> the way it's done now, doesn't mean that's the best way, as I've tried
>> >> to
>> >> argue in the OP. I don't think you've addressed the issue of
>> unnecessary
>> >> complexity pointed out in OP.
>> >>
>> >>
>> >>
>> >> --
>> >> View this message in context:
>> >>
>> http://r.789695.n4.nabble.com/changing-data-table-by-without-by-syntax-to-require-a-by-tp4664770p4664990.html
>> >> Sent from the datatable-help mailing list archive at Nabble.com.
>> >> _______________________________________________
>> >> datatable-help mailing list
>> >> datatable-help at lists.r-forge.r-project.org
>> >>
>> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help
>> >
>> _______________________________________________
>> > datatable-help mailing list
>> > datatable-help at lists.r-forge.r-project.org
>> >
>> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help
>>
>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/datatable-help/attachments/20130424/d430c67d/attachment-0001.html>
More information about the datatable-help
mailing list