Here you go

sel =: (] ([ {~ (0&{"1@[ i. ])) <@[)

 11 sel a
┌──┬─────────┐
│11│0 0 1 0 1│
└──┴─────────┘
   12 sel a
┌──┬───────────────┐
│12│1 0 0 0 1 0 0 1│
└──┴───────────────┘


If you were willing to flip the order of sel it could be slightly cleaner

sel2=: (([ {~ (0&{"1@[ i. ])) <)

a sel2 12
┌──┬───────────────┐
│12│1 0 0 0 1 0 0 1│
└──┴───────────────┘



On Tue, Apr 10, 2018 at 2:12 PM, Skip Cave <s...@caveconsulting.com> wrote:

> ​​Yes! Joe has the verb I need:
>
> tst
>
> ┌──┬─┐
>
> │10│0│
>
> ├──┼─┤
>
> │10│0│
>
> ├──┼─┤
>
> │10│1│
>
> ├──┼─┤
>
> │10│0│
>
> ├──┼─┤
>
> │10│0│
>
> ├──┼─┤
>
> │10│0│
>
> ├──┼─┤
>
> │11│1│
>
> ├──┼─┤
>
> │11│0│
>
> ├──┼─┤
>
> │11│0│
>
> ├──┼─┤
>
> │11│0│
>
> ├──┼─┤
>
> │11│1│
>
> ├──┼─┤
>
> │12│1│
>
> ├──┼─┤
>
> │12│0│
>
> ├──┼─┤
>
> │12│0│
>
> ├──┼─┤
>
> │12│0│
>
> ├──┼─┤
>
> │12│0│
>
> ├──┼─┤
>
> │12│1│
>
> ├──┼─┤
>
> │12│1│
>
> ├──┼─┤
>
> │12│0│
>
> └──┴─┘
>
>
> bx=: 3 : '|: (~. (0&{"1) y) ,: (0&{"1 <@;/. 1&{"1) y'
>
> ]a =: bx tst
>
> ┌──┬───────────────┐
>
> │10│0 0 1 0 0 0 │
>
> ├──┼───────────────┤
>
> │11│1 0 0 0 1 │
>
> ├──┼───────────────┤
>
> │12│1 0 0 0 0 1 1 0│
>
> └──┴───────────────┘
>
>
> Now I just need a select verb:
>
>
> 11 sel a
>
> 1 0 0 0 1
>
>
> 12 sel a
>
> 1 0 0 0 0 1 1 0
>
>
> In other uses, the boolean string can be replaced by a character string,
>
> so the bx and sel verbs needs to handle all char types:
>
>
> ]b
>
> ┌──┬───────────────┐
>
> │10│this is a test.│
>
> ├──┼───────────────┤
>
> │11│Another test. │
>
> ├──┼───────────────┤
>
> │12│The last test. │
>
> └──┴───────────────┘
>
>
> 11 sel b
>
>
> Another test.
>
>
> <<<>>>
>
>
> Skip
>
>
> Skip Cave
> Cave Consulting LLC
>
> On Tue, Apr 10, 2018 at 12:51 PM, Joe Bogner <joebog...@gmail.com> wrote:
>
> > It sounds like maybe this is what you want?
> >
> > (0&{"1 </. ]) tst
> > ┌──────┬──────┬──────┐
> > │┌──┬─┐│┌──┬─┐│┌──┬─┐│
> > ││10│1│││11│0│││12│1││
> > │├──┼─┤│├──┼─┤│├──┼─┤│
> > ││10│1│││11│0│││12│0││
> > │├──┼─┤│├──┼─┤│├──┼─┤│
> > ││10│1│││11│1│││12│0││
> > │├──┼─┤│├──┼─┤│├──┼─┤│
> > ││10│0│││11│0│││12│0││
> > │├──┼─┤│├──┼─┤│├──┼─┤│
> > ││10│1│││11│1│││12│1││
> > │├──┼─┤│└──┴─┘│├──┼─┤│
> > ││10│1││      ││12│0││
> > │└──┴─┘│      │├──┼─┤│
> > │      │      ││12│0││
> > │      │      │├──┼─┤│
> > │      │      ││12│1││
> > │      │      │└──┴─┘│
> > └──────┴──────┴──────┘
> >
> >
> > or
> >
> >    |: (~. (0&{"1) tst) ,: (0&{"1 <@;/. 1&{"1) tst
> > ┌──┬───────────────┐
> > │10│1 1 1 0 1 1    │
> > ├──┼───────────────┤
> > │11│0 0 1 0 1      │
> > ├──┼───────────────┤
> > │12│1 0 0 0 1 0 0 1│
> > └──┴───────────────┘
> >
> >
> >
> >
> >
> > On Tue, Apr 10, 2018 at 1:45 PM, 'Pascal Jasmin' via Programming <
> > programm...@jsoftware.com> wrote:
> >
> > > if I understand correctly, there are 2 levels of boxing (or data can be
> > > made into 2 level) such as
> > >
> > > <"1 <"0 ? 3 10 $ 2
> > >
> > > then, this will unbox the inner set without introducing fills.
> > >
> > > ; each <"1 <"0 ? 3 10 $ 2
> > >
> > >
> > >
> > >
> > > ________________________________
> > > From: Skip Cave <s...@caveconsulting.com>
> > > To: "programm...@jsoftware.com" <programm...@jsoftware.com>
> > > Sent: Tuesday, April 10, 2018 1:32 PM
> > > Subject: Re: [Jprogramming] Indvidual unboxing
> > >
> > >
> > >
> > > ​​
> > > I probably need to back up a step:
> > >
> > > My original data looks something like this:
> > >
> > > t=: 4 : '(y#x),.?y#2'
> > >
> > > ]tst=: > each(10 t 6),"2 (11 t 5), 12 t 8
> > >
> > > ┌──┬─┐
> > >
> > > │10│0│
> > >
> > > ├──┼─┤
> > >
> > > │10│1│
> > >
> > > ├──┼─┤
> > >
> > > │10│1│
> > >
> > > ├──┼─┤
> > >
> > > │10│1│
> > >
> > > ├──┼─┤
> > >
> > > │10│1│
> > >
> > > ├──┼─┤
> > >
> > > │10│0│
> > >
> > > ├──┼─┤
> > >
> > > │11│0│
> > >
> > > ├──┼─┤
> > >
> > > │11│1│
> > >
> > > ├──┼─┤
> > >
> > > │11│0│
> > >
> > > ├──┼─┤
> > >
> > > │11│0│
> > >
> > > ├──┼─┤
> > >
> > > │11│0│
> > >
> > > ├──┼─┤
> > >
> > > │12│0│
> > >
> > > ├──┼─┤
> > >
> > > │12│1│
> > >
> > > ├──┼─┤
> > >
> > > │12│0│
> > >
> > > ├──┼─┤
> > >
> > > │12│1│
> > >
> > > ├──┼─┤
> > >
> > > │12│1│
> > >
> > > ├──┼─┤
> > >
> > > │12│1│
> > >
> > > ├──┼─┤
> > >
> > > │12│0│
> > >
> > > ├──┼─┤
> > >
> > > │12│0│
> > >
> > > └──┴─┘
> > >
> > >
> > > I want to box the boolean second column using the first column for an
> > > index:
> > >
> > >
> > > f1 tst
> > >
> > > ┌──┬───────────────┐
> > >
> > > │10│1 1 1 1 0 1 │
> > >
> > > ├──┼───────────────┤
> > >
> > > │11│0 1 0 0 0 │
> > >
> > > ├──┼───────────────┤
> > >
> > > │12│0 1 0 1 1 1 0 0│
> > >
> > > └──┴───────────────┘
> > >
> > >
> > > Or maybe this is better if it get rid if the fills.
> > >
> > >
> > > f2 tst
> > >
> > > ┌──┬───────────┬──┬─────────┬──┬───────────────┐
> > >
> > > │10│1 1 1 1 0 1│11│0 1 0 0 0│12│0 1 0 1 1 1 0 0│
> > >
> > > └──┴───────────┴──┴─────────┴──┴───────────────┘
> > >
> > > However, I need to find a boolean string givem it's index: 11 fb f2 tst
> > >
> > >
> > > ┌─────────┐
> > >
> > > │0 1 0 0 0│
> > >
> > > └─────────┘
> > >
> > > Skip
> > > ----------------------------------------------------------------------
> > > 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