Would probably have been clearer to say "specifying an unboxed table as a
list of selectors is supported"

On Fri, Aug 7, 2020 at 4:59 PM Ric Sherlock <[email protected]> wrote:

> Very nice bob!
>
> Just to add that as of J9, specifying an unboxed table as a selector is
> supported so:
>    rep (1 0 2 ,: 0 2 1)} t
>
> ┌──┬──┬──┬──┐
>
> │0 │1 │2 │3 │
>
> ├──┼──┼──┼──┤
>
> │4 │5 │6 │7 │
>
> ├──┼──┼──┼──┤
>
> │8 │a │10│11│
>
> └──┴──┴──┴──┘
>
>
> ┌──┬──┬──┬──┐
>
> │12│13│a │15│
>
> ├──┼──┼──┼──┤
>
> │16│17│18│19│
>
> ├──┼──┼──┼──┤
>
> │20│21│22│23│
>
> └──┴──┴──┴──┘
>
> NB. and for a single replacement
>
> rep (,: 1 0 2)} t
>
> ┌──┬──┬──┬──┐
>
> │0 │1 │2 │3 │
>
> ├──┼──┼──┼──┤
>
> │4 │5 │6 │7 │
>
> ├──┼──┼──┼──┤
>
> │8 │9 │10│11│
>
> └──┴──┴──┴──┘
>
>
> ┌──┬──┬──┬──┐
>
> │12│13│a │15│
>
> ├──┼──┼──┼──┤
>
> │16│17│18│19│
>
> ├──┼──┼──┼──┤
>
> │20│21│22│23│
>
> └──┴──┴──┴──┘
>
> On Fri, Aug 7, 2020 at 4:20 PM 'robert therriault' via Programming <
> [email protected]> wrote:
>
>> Hi Harvey,
>>
>> Pascal got you most of the way there, but I will add the idea of using a
>> selector to the Amend adverb to provide more precision.
>>
>>     [ t=: <"0 i. 2 3 4  NB. creates rank three boxed brick
>> ┌──┬──┬──┬──┐
>> │0 │1 │2 │3 │
>> ├──┼──┼──┼──┤
>> │4 │5 │6 │7 │
>> ├──┼──┼──┼──┤
>> │8 │9 │10│11│
>> └──┴──┴──┴──┘
>>
>> ┌──┬──┬──┬──┐
>> │12│13│14│15│
>> ├──┼──┼──┼──┤
>> │16│17│18│19│
>> ├──┼──┼──┼──┤
>> │20│21│22│23│
>> └──┴──┴──┴──┘
>>    [ rep=: <'a' NB. replacement value for selected addresses
>> ┌─┐
>> │a│
>> └─┘
>>    rep (1 }) t  NB. replaces all of the 1 item with rep's
>> ┌─┬─┬──┬──┐
>> │0│1│2 │3 │
>> ├─┼─┼──┼──┤
>> │4│5│6 │7 │
>> ├─┼─┼──┼──┤
>> │8│9│10│11│
>> └─┴─┴──┴──┘
>>
>> ┌─┬─┬──┬──┐
>> │a│a│a │a │
>> ├─┼─┼──┼──┤
>> │a│a│a │a │
>> ├─┼─┼──┼──┤
>> │a│a│a │a │
>> └─┴─┴──┴──┘
>>    rep ((<1 0) }) t  NB. replaces 0th row of the 1 item with rep's. (< 1
>> 0) is necessary for selector rules
>> ┌──┬──┬──┬──┐
>> │0 │1 │2 │3 │
>> ├──┼──┼──┼──┤
>> │4 │5 │6 │7 │
>> ├──┼──┼──┼──┤
>> │8 │9 │10│11│
>> └──┴──┴──┴──┘
>>
>> ┌──┬──┬──┬──┐
>> │a │a │a │a │
>> ├──┼──┼──┼──┤
>> │16│17│18│19│
>> ├──┼──┼──┼──┤
>> │20│21│22│23│
>> └──┴──┴──┴──┘
>>    rep ((<1 0 2) }) t  NB. replaces  a single box in the 0th row of the 1
>> item with rep. (< 1 0 2) is necessary for selector rules
>> ┌──┬──┬──┬──┐
>> │0 │1 │2 │3 │
>> ├──┼──┼──┼──┤
>> │4 │5 │6 │7 │
>> ├──┼──┼──┼──┤
>> │8 │9 │10│11│
>> └──┴──┴──┴──┘
>>
>> ┌──┬──┬──┬──┐
>> │12│13│a │15│
>> ├──┼──┼──┼──┤
>> │16│17│18│19│
>> ├──┼──┼──┼──┤
>> │20│21│22│23│
>> └──┴──┴──┴──┘
>>
>> Hope this helps.
>>
>> Cheers, bob
>>
>> > On Aug 6, 2020, at 21:01, HH PackRat <[email protected]> wrote:
>> >
>> > On 8/6/20, 'Pascal Jasmin' via Programming <[email protected]>
>> wrote:
>> >>> NB.          (row{data)=. (< interpolated) start } row{data
>> >>
>> >> to change row 1,
>> >> 2 2 2 2 2 (1}) i. 4 5
>> >> 0 1 2 3 4
>> >> 2 2 2 2 2
>> >> 10 11 12 13 14
>> >> 15 16 17 18 19
>> >>
>> >> if your data is boxed by column,
>> >> 2 3 2 3 2  (1}) each <"1&.|: i. 4 5  NB. the new row can be a "boxed
>> record"
>> >
>> > Thanks for your response, but your examples are the same kind of thing
>> > I was encountering in the few sources that addressed amending.  It did
>> > not address the issue of "drilling down" into the middle of a table
>> > and changing a value.
>> >
>> > There are 3 levels of data: table (called "data"), row, and column.
>> > Thus, every box of the table has a 3-part address.  Your example does
>> > not indicate how to change a single cell in a table.  The diagram
>> > below (sorry, I can only do a proportional font) shows the beginning
>> > of the transposed data:
>> >
>> > ┌───────┬───────┬──────┬─┬──────┬───────┬─
>> > │261.78      │263.33       │263.27    │0│263.23    │264.22      │
>> > ├───────┼───────┼──────┼─┼──────┼───────┼─
>> > │264.02      │264.59       │263.47    │0 │264.87   │265.17      │
>> > ├───────┼───────┼──────┼─┼──────┼───────┼─
>> > │261.54      │262.54      │262.84     │0 │262.62   │262.82      │
>> > ├───────┼───────┼──────┼─┼──────┼───────┼─
>> > │263.33      │263.27      │263.23     │0 │264.22    │263.92     │
>> > ├───────┼───────┼──────┼─┼──────┼───────┼─
>> > │1360000    │1150000    │300000   │0 │940000   │1040000    │
>> > └───────┴───────┴──────┴─┴──────┴───────┴─
>> >
>> > How would you amend (in place) the entire data (table) so that the box
>> > at column 3, row 2, would have the literal value '262.73' instead of
>> > zero?  This is the essence of what I was trying to ask.
>> >
>> > 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
>>
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to