Thanks Henry
This is much simpler but I have this (probably irrational) negative feeling
about using Do (".). I imagine that Evoke (~) is probably just Do (".) under
the covers so perhaps I just need to get over it!! Reassurances welcome :-)
The other thing I like about the other solution is that it will give a length
error if the columns are not equal length. Whether that is desirable is
obviously problem dependent, but in my case it is a plus. Combining bits I get:
,.&:>/@:(".&.>)@;: 'Var1 Var2 Var3 Var4 Var5'
> From: Henry Rich
> Sent: Thursday, 17 June 2010 12:23
>
> |:@:(".@>) ;: 'Var3 Var5 Var4 Var1 Var2'
>
> Sherlock, Ric wrote:
> > How best to form a matrix from a list of noun names where each noun
> is a list of values that will form a column in the matrix?
> >
> > Below is one solution, are there better ones?
> >
> > Named nouns:
> > 'Var3 Var5 Var4 Var1 Var2' =: 5 7 ?...@$ 60
> >
> > evoke=: 3 : 'y~'
> > toMatrix =: [: ,.&:>/ [: evoke&.> ;:
> >
> > toMatrix 'Var1 Var2 Var3 Var4 Var5'
> > 16 36 6 31 37
> > 0 46 35 32 40
> > 24 5 59 58 14
> > 24 17 52 0 6
> > 11 8 14 10 38
> > 13 48 39 42 13
> > 23 42 20 11 58
> >
> > ---------------------------------------------------------------------
> -
> > 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