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
