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
