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
