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
