Here are some more simple examples that may help.

   ]B=: i. 4 5
 0  1  2  3  4
 5  6  7  8  9
10 11 12 13 14
15 16 17 18 19
   1 3{ i. 4 5     NB. items 1 and 3 of B
 5  6  7  8  9
15 16 17 18 19
   (<1 3){ B       NB. item 3 from item 1 of B
8
   (1 3;3 3){ B    NB. item 3 from item 1 of B & item 3 from item 3 of B
8 18
   (<1 3; 3){ B    NB. item 3 from items 1 & 3 of B
8 18
   (<3;2 3){ B     NB. items 2 & 3 from item 3 of B
17 18
   (<1 3;2 3){ B   NB. items 2 & 3 from items 1 & 3 of B
 7  8
17 18
   (<a:;2 3){ B    NB. items 2 & 3 from all items of B
 2  3
 7  8
12 13
17 18

To amend the arrays, replace { with } and add a left argument that
matches the shape and type of the result you get using {  .
   (98 99) (1 3;3 3)} B
 0  1  2  3  4
 5  6  7 98  9
10 11 12 13 14
15 16 17 99 19
   (90 + i.2 2) (<1 3;2 3)} B
 0  1  2  3  4
 5  6 90 91  9
10 11 12 13 14
15 16 92 93 19


On Wed, Feb 29, 2012 at 5:49 PM, PackRat <pack...@anet.com> wrote:
> I have a table "b" (example below) which is the transpose of table "a"
> which is read in from a file.  Here's what table b looks like, just so
> you have an idea of what's where:
>
> +--------+-----------+--------+--------+-----------+...
> |F       |CAT        |DE      |CSX     |XOM        |...
> +--------+-----------+--------+--------+-----------+...
> |Ford    |Caterpillar|Deere   |CSX     |Exxon Mobil|...
> +--------+-----------+--------+--------+-----------+...
> |3710    |665        |410     |890     |4000       |...
> +--------+-----------+--------+--------+-----------+...
> |19560307|19291202   |19330609|19801103|19991201   |...
> +--------+-----------+--------+--------+-----------+...
> |0       |0          |0       |0       |0          |...
> +--------+-----------+--------+--------+-----------+...
> |0       |0          |0       |0       |0          |...
> +--------+-----------+--------+--------+-----------+...
>
> The problem I'm having is with amending individual cells in both row 4
> and row 5 (the last two rows) of table b.  (I've run into this problem
> before, but I created lengthy workarounds which are not really J-ish.
> I decided this time to ask the wisdom of the J community to finally
> find out once and for all what the "right" way of doing this kind of
> thing is.)
>
> I don't run into problems READING an individual cell, such as:
>
>   stocksym=. toupper > (j { 0 { b)
>
> However, when I attempt to WRITE an amend into the jth (e.g., first)
> cell of row 4 of table b, for example:
>
>   b=. (< stocknum) j } (4 { b)
>
> table b is incorrectly changed (compared to my intent, that is) from
> the table shown above to a list instead:
>
>   +-+-+-+-+-+...
>   |6|0|0|0|0|...
>   +-+-+-+-+-+...
>
> Is there some "standard" way of making such amends within a table that
> I seem to be missing somewhere along the line?  Thanks for your help!
>
>
> Harvey
>
> ----------------------------------------------------------------------
> 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