an approach I would take: (untested)

'p1 p2 p3 p4' =: i.4

(make numeric 'row column value' data) 4 : 'for_i x do. y=. v (<r;c) }  y [''r 
c v''=. i end. y' 15 4 $ 0


----- Original Message -----
From: June Kim (김창준) <[email protected]>
To: Programming forum <[email protected]>
Cc: 
Sent: Friday, June 27, 2014 1:16:03 PM
Subject: Re: [Jprogramming] Filling in Tables

Hello Dan,

On Sat, Jun 28, 2014 at 1:35 AM, Dan Bron <[email protected]> wrote:

> June Kim asked:
> > Is there an easier way to do the following? My first attempt was:
> >    'day id val'=:|:(<a:;0 2)(".&.>@{`[`])} data
> >    coord=:(<"1 day ,. (i.~ ~.) id)
> >    load 'strings'
> >    ysize=:>:>./day
> >    (a:, <"1 ~.id), (<"0 i.ysize),.((<_);<a:) rplc~"1
> >    <"0 val coord} _$~ysize,#~.id
>
> Part of the complexity you're wrestling with arises from your construction
> of a boxed table with column headers and row labels.  Do you really need
>

I added the headers and labels at the end of the computation.

that? Typically, that's only useful when you've done all your analysis and
> computation and want to present a formatted result for human consumption.
>

I had to move the result to a spreadsheet program(in my case, Excel and
google spreadsheet) to create a chart. They had to be in a boxed matrix,
and then it could be easily transformed into a formatted string.


> If "data" represents your input, to which you want to apply some analysis,
>

Yes, they are.


> it would be simpler, easier, and faster to work with a pure (unboxed)
> numeric matrix of values, then slap the headers on when you're done.
>
>
I wonder how your approach would be different. Could you please show me how
you'd like to go about it with a pure matrix of values?


> If you really need the formatted boxed table, then using amend, as you do,
> is the most common and straightforward approach. I can't really recommend
> many improvements, except perhaps to construct the body of the table
> directly, and skip the "rplc" part.  For example:
>
>            coord2tab =: verb define
>                 'x id d'=.<"1 |: y
>
>                 my =. >./ y =. id i.~ uid =. ~.id
>                 mx =. >./ x =.  0 ". ;:^:_1 x
>
>                 t  =. d (x ;&.> y)} (1 + mx,my) $ a:
>                 (a: , <"0 i. 1+mx) ,. uid , t
>         )
>
>
Thank you for your idea. Now I see why rplc was redundant.


>
>            data=: TAB cut&> LF cut noun define-.' '
>                  0      p1       4
>                  2      p1       6
>                  3      p1      10
>                 13      p1      15
>                  0      p2       3
>                  1      p2       5
>                  7      p2      10
>                 10      p2      11
>                 14      p2      12
>                  1      p3       9
>                  5      p3      10
>                  9      p3      20
>                  7      p4      10
>         )
>
>
>            coord2tab data
>         +--+--+--+--+--+
>         |  |p1|p2|p3|p4|
>         +--+--+--+--+--+
>         |0 |4 |3 |  |  |
>         +--+--+--+--+--+
>         |1 |  |5 |9 |  |
>         +--+--+--+--+--+
>         |2 |6 |  |  |  |
>         +--+--+--+--+--+
>         |3 |10|  |  |  |
>         +--+--+--+--+--+
>         |4 |  |  |  |  |
>         +--+--+--+--+--+
>         |5 |  |  |10|  |
>         +--+--+--+--+--+
>         |6 |  |  |  |  |
>         +--+--+--+--+--+
>         |7 |  |10|  |10|
>         +--+--+--+--+--+
>         |8 |  |  |  |  |
>         +--+--+--+--+--+
>         |9 |  |  |20|  |
>         +--+--+--+--+--+
>         |10|  |11|  |  |
>         +--+--+--+--+--+
>         |11|  |  |  |  |
>         +--+--+--+--+--+
>         |12|  |  |  |  |
>         +--+--+--+--+--+
>         |13|15|  |  |  |
>         +--+--+--+--+--+
>         |14|  |12|  |  |
>         +--+--+--+--+--+
>
> But as I said, this is fundamentally the same approach, with minor
> simplification and some reformatting of the code.
>
> -Dan
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm



>
----------------------------------------------------------------------
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