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
