I recently released an update to addons/dsv that contains a new utitlity:
assign2hdr

testcsv=: noun define
# The following is an example of a comma-separated file with
# comment lines at the start of the file indicated by the fact they

# start with the # symbol.

id,bar code,name

24582621,119533,DELTOP DAVINCI

25422991,155439,AMBZED ROSCOE S2F

25784612,135624,TEF SHADOW BLARIS

22063188,102545,BIG P BLONDEL PRIM

20803506,137609,MONGA FLOL

27360900,107865,FRAMBIN R NOGN ET

)


   fixcsv testcsv

+--------+--------+------------------+

|id |bar code|name |

+--------+--------+------------------+

|24582621|119533 |DELTOP DAVINCI |

+--------+--------+------------------+

|25422991|155439 |AMBZED ROSCOE S2F |

+--------+--------+------------------+

|25784612|135624 |TEF SHADOW BLARIS |

+--------+--------+------------------+

|22063188|102545 |BIG P BLONDEL PRIM|

+--------+--------+------------------+

|20803506|137609 |MONGA FLOL |

+--------+--------+------------------+

|27360900|107865 |FRAMBIN R NOGN ET |

+--------+--------+------------------+


   assign2hdr fixcsv testcsv

   bar_code

119533 155439 135624 102545 137609 107865


It does try to automatically coerce names, but does so by removing leading
blanks and any leading chars that aren't valid starting chars for a name.
Adding as 'X' in front may be better than that.

On May 26, 2014 5:04 AM, "Devon McCormick" <[email protected]> wrote:

> 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
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to