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