I agree.

(But it's amazing what a dog's dinner you can make of it if you're an
APL novice. I recall my earliest APL code and I can't help though but
sympathise)


On Wed, May 18, 2011 at 12:13 AM, Roger Hui <[email protected]> wrote:
> It should not be verbose even in APL:
>
>      Key←{⍺⍺¨(↓(∪⍺)∘.=⍺)/¨⊂⍵}
>
>      x←1 1 1 1 2 2 2 33 33 33
>      y←100 100 20 400 30 200 300 100 100 100
>      x +/ Key y
> 620 530 300
>
>      p←10?10
>      x[p]
> 1 33 33 33 2 2 1 2 1 1
>      y[p]
> 20 100 100 100 300 200 400 30 100 100
>      x[p] +/ Key y[p]
> 620 300 530
>
>
>
> ----- Original Message -----
> From: Ian Clark <[email protected]>
> Date: Tuesday, May 17, 2011 15:28
> Subject: Re: [Jprogramming] Aggregation
> To: Programming forum <[email protected]>
>
>> Thanks folx, that's pretty useful.
>>
>> Our author should be pleased to know it. He's been doing it a
>> long-winded way in APL.
>>
>> So... everyone on the list calls it "Key"...?
>>
>> Did I hear the term "sub-addition" once, in passing?
>>
>>
>>
>> On Tue, May 17, 2011 at 10:34 PM, Roger Hui <[email protected]>
>> wrote:> See  http://www.jsoftware.com/jwiki/Essays/Key
>> > for some additional uses of "key".
>> >
>> >
>> >
>> > ----- Original Message -----
>> > From: Marshall Lochbaum <[email protected]>
>> > Date: Tuesday, May 17, 2011 14:15
>> > Subject: Re: [Jprogramming] Aggregation
>> > To: 'Programming forum' <[email protected]>
>> >
>> >> The standard solution would be to use key (/.):
>> >> +//./ |: arr
>> >>
>> >> The three slashes in a row make this a bit confusing, but it is
>> >> equivalentto
>> >> ({."1 (+/)/. {:"1) arr
>> >> where key is the really important part.
>> >>
>> >> Marshall
>> >>
>> >> -----Original Message-----
>> >> From: [email protected]
>> >> [mailto:[email protected]] On Behalf Of Ian Clark
>> >> Sent: Tuesday, May 17, 2011 5:09 PM
>> >> To: Programming forum
>> >> Subject: [Jprogramming] Aggregation
>> >>
>> >> I'm being lazy here. But I need a better answer than I can devil
>> >> out myself.
>> >> It occurs in a recent submission to Vector...
>> >>
>> >> I have an array like this (which may be unsorted, and can grow
>> >> very large):
>> >>
>> >> 1     100
>> >> 1     100
>> >> 1     20
>> >> 1     400
>> >> 2     30
>> >> 2     200
>> >> 2     300
>> >> 33    100
>> >> 33    100
>> >> 33    100
>> >>
>> >> I want to collapse it to:
>> >>
>> >> 1     620
>> >> 2     530
>> >> 33    300
>> >>
>> >> i.e. summing over subheadings.
>> >> The original example had A B C  in place of 1 2 33, but
>> >> numbers will do, to
>> >> save boxing. We don't know the full set of A B C ... in advance.
>> >> Nothing to
>> >> be assumed about the first column, except it is
>> >> +ve integers. But I'm also interested in the case where the first
>> >> column lies in the set: i.(n) for some n>0. In other words they
>> >> can be
>> >> squashed up.
>> >>
>> >> 1. There's simply got to be a "jem" to do it. Suggestions, please.
>> >>       - Transpose the array if you wish. Box it: 1 100 ; 1
>> 100 ; 1 20 ;
>> >> ...
>> >> -whatever.
>> >>       - No, of course I don't want a looping solution :)
>> >>
>> >> 2. What do you call this process? I call it "aggregation" -- but
>> >> I think the
>> >> name differs across disciplines.
>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to