gt=: ([#_:), +/@:(}."1) M=: mt,gt -- Raul
P.S. I do not like using reserved names globally (m,n,u,v,x,y). On Mon, Sep 10, 2012 at 3:00 PM, Robert Cyr <robert....@gmail.com> wrote: > As a first step in analyzing data it is nice to have subtotals by different > parameters. I guess for example one could get total salaries, costs and > sales totaled for an entire country and subtotaled by region, sex, age of a > sales-force. Each sale can then be included in an array of 6 columns in > this case. Each subtotal would be produced with: > > mt=:(/:~)@(([:~.{."1 ),.{."1 +//. }."1) > > In our case, > > 3 mt (a: 6-column array) > > would produce all sub-totals. But for all levels of sub-totals as well as > the grand total, the following would do: > > m=: 4 : 0 > w=. (0,{:$y)$0 > u=.y > for_t. i.-x+1 do. > u=. t mt u > if. t < x do. u=. _ (<a:;t)}u end. > w=.w,u > end. > /:~w > ) > > on my iPad, i get: > ts'4 m ?.1000000$,: 4 5#5 100' > time: 4.39185 > space: 1.97136e8 > > But I have not ben lucky wit a one-liner on this, I tried: > > 3 (}.@])`(($:<:@[)(],mt)])@.(0<[)a > |stack error > | 3 (}.@])`(($:<:@[)(],mt)])@.(0<[)a > > Expecting to substitute mt into this line and get a mean one-liner. > > Any hints or suggestion? > > Robert Cyr > > > Sent from my iPad > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm