Assigning column names this way can be very useful.  However, it requires
that column names be valid J variable names.  The R programming language
has a feature like this that includes automatic coercion of invalid names
for at least a couple of simple cases - something like changing embedded
spaces to underscores and prefixing any name beginning with a numeral with
"X".

It might be useful to publicize a simple set of conversions like this for J
names on the wiki so that there's at least a stab at standardization.


On Sun, May 25, 2014 at 12:58 PM, J. Patrick Harrington
<[email protected]>wrote:

> I've always liked this economy of assignment:
> 'e f g'=. s=. >1 2;3 4;5 6
>   f
> 3 4
>   e
> 1 2
> -- but I wondered if it were possible to extend this where the left hand
> side is not explicit:
>    abc=. 'a';'bb';'ccc'
> ┌─┬──┬───┐
> │a│bb│ccc│
> └─┴──┴───┘
> I found I could make a single assignment:
>    (>1{abc)=. 1{s
>    bb
> 3 4
>   a
> |value error: a
> But I didn't want to put this into a loop.
> It was neat to find that I could write:
>    (abc)=. s
>    a
> 1 2
>    bb
> 3 4
>   ccc
> 4 5
>   abc
> ┌─┬──┬───┐
> │a│bb│ccc│
> └─┴──┴───┘
>   This is useful in working with data files output
> by a stellar evolution program where I have ASCII tables with 90 columns
> and over 1000 rows, and each
> column has a name 1 to 25 characters long: I wanted
> to read this into a J session, assigning the column
> values to each of the respective names. Turns out it
> can be done with one line of the form
>    (head)=: data_array
> where
>    head
> ┌────┬────┬──────┬────┬────┬──────────┬────────┬────────────
> ─────────────┬───────────────────┬─
> │zone│logT│logRho│logP│logR│luminosity│eps_grav│log_abs_
> eps_grav_dm_div_L│signed_log_eps_grav│..
> └────┴────┴──────┴────┴────┴──────────┴────────┴────────────
> ─────────────┴───────────────────┴─
> (see http://www.astro.umd.edu/~jph/mesa_read.ijs) Another example of the
> "black hole of J".
>
> I don't know where in the documentation this can be
> found - I just got there by experimentation.
>
>                                        Patrick
>
> P.S. This started as a post asking for
>      help in getting rid of a loop, but
>      I found the solution along the way.
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm




-- 
Devon McCormick, CFA
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to