Thanks to Mike! 

comb=: 4 : 0

NB.*comb v combinations of size x from i.y

comb=: 3 : 0

comb~ y

:

k=. i.>:d=. y-x

z=. (d$<i.0 0),<i.1 0
for. i.x do. z=. k ,.&.> ,&.>/\. >:&.> z end.
   3 comb 6



I need to study in order to make it do what I want. I am aware that my 
programming is embarassingly inefficient. 
Thanks to Raul!
   2 (((= +/"1) # ]) f) 6 NB. fork, not hook!

I wonder why it is hard to code the hook. It is not important, but it is 
strange.
I am studying the bessel correction. I turns out that the mean of the bessel 
corrected variances of all samples is equal to the bessel corrected variance of 
the population.

   E   =. +/%# NB. mean

   Va =. E@:*:-*:@:E NB. Variance

   Bc =. -.&.:%@#*Va NB. Bessel corrected variance

   S =. ((((=+/"1)#])#&2#:[:i.2&^) #)#] NB. samples
   
   Bc n=.i.8

6

   E Bc |:4 S n
6

   E Bc |:5 S n
6

   E Bc |:6 S n
6

   E Bc |:7 S n
6

   E Bc |:8 S n
6




    Den søndag den 1. august 2021 16.06.21 CEST skrev 'Mike Day' via 
Programming <[email protected]>:  
 
 Nice work,  especially persuading 13 : to return a tacit version.  
I had reached the same solution as Pascal Jasmin’s,  so not worth a comment in 
itself.

However, it is just about worth pointing out that the filtering approach gets 
expensive for larger values of y;  eg 3 Smps 20 would entail filtering 2^20 
rows to obtain 1140. In that case,  I reckon it’s better to use the 1s indices 
provided by, eg, 3 comb 20 .  
comb is in addons/stats/base/combinatorial .

In case it matters!

Mike

Sent from my iPad

> On 31 Jul 2021, at 20:48, Raul Miller <[email protected]> wrote:
> 
> That's a bit tricky in this case, but it can be done:
> 
> First off, the problem:
> 
>      13 : '(#~x=+/"1)f y' NB. select row
> 4 : '(#~x=+/"1)f y'
> 
> But we can work around this by giving 13 : a variant expression:
> 
>    13 : 't#~x=+/"1 t=.f y'
> [ (] #~ [ = [: +/"1 ]) [: f ]
> 
> And, in this example, we can turn this into a hook through inspection:
>  Smps=: (] #~ [ = [: +/"1 ]) f
> 
> This could be simplified further, of course:
>  2 ((] #~ (= +/"1)) f) 6
> and
>  2 (((= +/"1) # ]) f) 6
> 
> do the same computation.
> 
> I hope this helps,
> 
> -- 
> Raul
> 
>> On Sat, Jul 31, 2021 at 12:43 PM Srdjan Stipic <[email protected]> 
>> wrote:
>> 
>> You can use “13 : ‘…’” construct to get tacit verb.
>> 
>> On Sat 31. Jul 2021 at 18:00, 'Pascal Jasmin' via Programming <
>> [email protected]> wrote:
>> 
>>> 2 ([ (] #~ [ = +/"1@:]) f@]) 6
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> On Saturday, July 31, 2021, 11:52:10 a.m. EDT, 'Bo Jacoby' via Programming
>>> <[email protected]> wrote:
>>> 
>>> 
>>> 
>>> 
>>> 
>>> Consider this code
>>> 
>>>  f=.#&2#:[:i.2&^ NB. 0-1 rows
>>> 
>>> 
>>> 
>>> 
>>>  Smps=. 4 : '(#~x=+/"1)f y' NB. select rows
>>> 
>>>  2 Smps 6 NB. for example
>>> 0 0 0 0 1 1
>>> 
>>> 0 0 0 1 0 1
>>> 
>>> 0 0 0 1 1 0
>>> 
>>> 0 0 1 0 0 1
>>> 
>>> 0 0 1 0 1 0
>>> 
>>> 0 0 1 1 0 0
>>> 
>>> 0 1 0 0 0 1
>>> 
>>> 0 1 0 0 1 0
>>> 
>>> 0 1 0 1 0 0
>>> 
>>> 0 1 1 0 0 0
>>> 
>>> 1 0 0 0 0 1
>>> 
>>> 1 0 0 0 1 0
>>> 
>>> 1 0 0 1 0 0
>>> 
>>> 1 0 1 0 0 0
>>> 
>>> 1 1 0 0 0 0
>>> 
>>> 
>>> 
>>> I want to rewrite it tacit
>>>  Smps=.((=+/)"1 f)#f@]
>>> This works but is without the hook, so "f" is repeated.
>>> How to write the hook tacitly?
>>> I believe that this is easy, but I am stuck.
>>> Thank you!
>>> Bo.
>>> 
>>> 
>>> 
>>> 
>>> ----------------------------------------------------------------------
>>> 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
  
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to