You may also want to look at
http://www.jsoftware.com/jwiki/Essays/Inverted_Table<http://www.jsoftware.com/jwiki/Essays/Inverted%20Table>


On Mon, Oct 7, 2013 at 1:47 PM, Dan Farmer <[email protected]> wrote:

> Awesome! Thank you Ganesh and Marshall. Believe it or not this simple
> example (and a few variants that I'm sure I can come up with now that
> I've seen some of the basics) will allow me to use J much more every
> day.
>
> -Dan
>
> On Mon, Oct 7, 2013 at 1:42 PM, Ganesh Rapolu <[email protected]> wrote:
> > Because the data is boxed, all comparisons must be boxed.
> >
> > header =. {. data
> > data =. }. data
> > index =. header i. <'nameFirst'
> > (<'Joe') +/@:= index {"1 data     NB. 398
> >
> >
> > On Mon, Oct 7, 2013 at 10:25 AM, Marshall Lochbaum <[email protected]
> >wrote:
> >
> >> You've got the arguments to i. backwards--the list to be searched is the
> >> left argument and the element to find is on the right. Assuming that hdr
> >> contains boxes, you also want the element to search for to be boxed.
> >> Then you would have
> >>
> >> hdr i. <'NameGiven'
> >>
> >> to find the name column.
> >>
> >> Another note is that for selecting column n from a table, (n {"1 t),
> >> which selects the nth element from each row of the table, is more
> >> idiomatic and generally easier to use than your ((<a:; n) { t).
> >>
> >> Marshall
> >>
> >> On Mon, Oct 07, 2013 at 12:59:13PM -0700, Dan Farmer wrote:
> >> > Hello all,
> >> >
> >> > As I have been trying to improve my J skills I've been trying to
> >> > incorporate it into my daily work, but I keep hitting a wall with my
> >> > ability to dig in to "tables" (i.e., read in a CSV and then explore
> >> > the data).
> >> >
> >> > I've seen Dan Bron mention perhaps putting together a wiki page about
> >> > this, but I thought maybe I could start the ball rolling here and
> >> > maybe we could put something together... together. I'm using the
> >> > baseball archive database as sample data since anyone can get at it
> >> > (2012 CSV data, it's an 8MB zip and I'm looking at Master.csv):
> >> > http://www.seanlahman.com/baseball-archive/statistics/
> >> >
> >> > I run off the rails pretty quickly. If I could get this type of stuff
> >> > done then I could double my usage of J day to day which would be a big
> >> > help in learning more. Here's my poor attempt:
> >> >
> >> > load 'tables/csv'
> >> >
> >> > t=. readcsv '/home/dan/Downloads/Master.csv'
> >> >
> >> >
> >> > NB. Let's see how many players are named Joe?
> >> >
> >> > NB. Hmm... first I need to know what the headers are
> >> >
> >> >
> >> > hdr=.0{t
> >> >
> >> >
> >> > NB. Ok. I want rows where nameGiven
> >> >
> >> > NB. is Joe (I won't worry about nicknames for
> >> >
> >> > NB. example purposes).
> >> >
> >> > NB. I can get a column like this:
> >> >
> >> > (<a:; 1) { t
> >> >
> >> >
> >> > NB. So if I can figure out the index of
> >> >
> >> > NB. nameGiven in hdr then I can select that
> >> >
> >> > NB. column, then do the same thing to get the "Joe's"
> >> >
> >> >
> >> > NB. Index of?
> >> >
> >> > 'nameGiven' i. hdr
> >> >
> >> >
> >> > NB. Nope, doesn't work. Looks like it treats
> >> >
> >> > NB. each letter as an item (I guess this is because
> >> >
> >> > NB. the shape of hdr is not e.g., rows x columns anymore)
> >> >
> >> >
> >> > NB. I could of course try the inverted table thing:
> >> >
> >> > ifa =: <@(>"1)@|:
> >> >
> >> > it=. ifa t
> >> >
> >> >
> >> > NB. Well, now my header row is split among the columns,
> >> >
> >> > NB. Ok let's just count with our fingers and try:
> >> >
> >> > 'Joe' i. 16 { it NB. 3
> >> >
> >> >
> >> > NB. ok. I'm confused enough to stop now.
> >> >
> >> >
> >> > Anyway, any help would be appreciated.
> >> > ----------------------------------------------------------------------
> >> > 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