But then it hit me that we can work with tables and that means that this works

   rep (1,.0 1 2,. 1) } t
┌──┬─┬──┬──┐
│0 │1│2 │3 │
├──┼─┼──┼──┤
│4 │5│6 │7 │
├──┼─┼──┼──┤
│8 │9│10│11│
└──┴─┴──┴──┘

┌──┬─┬──┬──┐
│12│a│14│15│
├──┼─┼──┼──┤
│16│a│18│19│
├──┼─┼──┼──┤
│20│a│22│23│
└──┴─┴──┴──┘

Thanks for pointing that out Ric

Cheers, bob

> On Aug 6, 2020, at 22:24, 'robert therriault' via Programming 
> <[email protected]> wrote:
> 
> Very cool Ric,
> 
> I guess that the fact that they are unboxed does take the a: complementary 
> selector out of play.
> 
>  rep (<1; a:;1 ) } t
> ┌──┬─┬──┬──┐
> │0 │1│2 │3 │
> ├──┼─┼──┼──┤
> │4 │5│6 │7 │
> ├──┼─┼──┼──┤
> │8 │9│10│11│
> └──┴─┴──┴──┘
> 
> ┌──┬─┬──┬──┐
> │12│a│14│15│
> ├──┼─┼──┼──┤
> │16│a│18│19│
> ├──┼─┼──┼──┤
> │20│a│22│23│
> └──┴─┴──┴──┘
> 
> But the new option with some transposition would still allow changing columns 
> without the boxing.
> 
> Cheers, bob
> 
>> On Aug 6, 2020, at 22:01, Ric Sherlock <[email protected]> wrote:
>> 
>> 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
> 
> ----------------------------------------------------------------------
> 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