Out of interest does the following give you the same result? load 'tables/csv' makenumcol fixcsv csvdata -.'"/'
Where csvdata is the string you are feeding to tblcsv. On Fri, Jan 13, 2012 at 9:09 AM, Tom Szczesny <tav...@gmail.com> wrote: > wow > > On Thu, Jan 12, 2012 at 2:38 PM, Ric Sherlock <tikk...@gmail.com> wrote: > >> ( (x e. 'dn')#i.$x ) <--> ( I. x e. 'dn' ) >> >> You can lose the for loop and the two transposes by amending all the >> columns at once. >> >> It is better/safer to use dyadic ". for converting literals to numbers. >> >> So this should work (untested): >> >> tblcsv =: 4 : 0 >> t=.([: < ;._1 ',',]) ;._2 y-.'"/' >> data=. }.t >> idx=. I. x e. 'dn' >> data=. (_99&". &.> idx{"1 data) (<a:;idx)} data >> ({.t),data >> ) >> >> Because in-place amendment is not supported for the boxed datatype, >> you shouldn't lose anything by dropping the ( data=. aa i}data ) so >> you could just do: >> >> tblcsv =: 4 : 0 >> t=.([: < ;._1 ',',]) ;._2 y-.'"/' >> idx=. I. x e. 'dn' >> ({.t), (_99&". &.> idx{"1 }.t) (<a:;idx)} }.t >> ) >> >> >> On Fri, Jan 13, 2012 at 6:25 AM, Tom Szczesny <tav...@gmail.com> wrote: >> > Sorry for all the "chatter". I think I'm done now... >> > Version #4: >> > >> > tblcsv =: 4 : 0 >> > t=.([: < ;._1 ',',]) ;._2 y-.'"/' >> > data=. |:}.t >> > for_k. (x e. 'dn')#i.$x do. >> > data=. (><&.>".'0',"1>k{data) k}data >> > end. >> > ({.t),|:data >> > ) >> > >> > >> > On Thu, Jan 12, 2012 at 12:05 PM, Tom Szczesny <tav...@gmail.com> wrote: >> > >> >> Replacing the - with _ is not necessary. >> >> Version #2 only works because of a typo in the 3rd line =, >> instead >> >> of =. >> >> Version #3: >> >> >> >> tblcsv =: 4 : 0 >> >> r=. y-.'"/' >> >> r=.([: < ;._1 ',',]) ;._2 r >> >> ttl=. {.r >> >> dat=. |:}.r >> >> for_j. (x e. 'dn')#i.$x do. >> >> dat=. (><&.>".'0',"1>j{dat) j}dat >> >> end. >> >> ttl,|:dat >> >> ) >> >> >> >> >> >> On Thu, Jan 12, 2012 at 11:41 AM, Tom Szczesny <tav...@gmail.com> >> wrote: >> >> >> >>> The version I sent earlier appeared to work, but actually does not. >> This >> >>> version does: >> >>> >> >>> tblcsv =: 4 : 0 >> >>> r=. y-.'"/' >> >>> r=, '_' ((r='-')#i.$r) } r >> >>> r=.([: < ;._1 ',',]) ;._2 r >> >>> ttl=. {.r >> >>> dat=. |:}.r >> >>> for_k. (x e. 'dn')#i.$x do. >> >>> dat=. (><&.>".'0',"1>k{dat) k}dat >> >>> end. >> >>> ttl,|:dat >> >>> ) >> >>> >> >>> Thanks again to everyone for all the help. >> >>> >> >>> On Thu, Jan 12, 2012 at 8:59 AM, Tom Szczesny <tav...@gmail.com> >> wrote: >> >>> >> >>>> Thanks much. >> >>>> Since I create the csv files, I was able to take some shortcuts: >> >>>> 1) All " are spurious (no commas in columns containing comments) >> >>>> 2) - only occurs in negative numbers >> >>>> 3) / only occus in dates 2004/12/15 (remove the / and don't >> need >> >>>> getdate at all) >> >>>> >> >>>> This definition is working fine: >> >>>> >> >>>> tblcsv =: 4 : 0 >> >>>> r=. y-.'"/' >> >>>> r=, '_' ((r='-')#i.$r) } r >> >>>> r=.([: < ;._1 ',',]) ;._2 r >> >>>> ttl=. {.r >> >>>> dat=. |:}.r >> >>>> for_i. (x e. 'dn')#i.$x do. >> >>>> dat=. (<"".>i{ dat) i} dat >> >>>> end. >> >>>> ttl,|:dat >> >>>> ) >> >>>> >> >>>> For large files, the biggest time user might be the need to do >> transpose >> >>>> twice. >> >>>> tx=:'ssdndssnnnnnnnnnnnnndnns' tblcsv 1!:1 <'t.csv' >> >>>> >> >>>> On Thu, Jan 12, 2012 at 6:16 AM, R.E. Boss <r.e.b...@planet.nl> >> wrote: >> >>>> >> >>>>> If you have a lot of dates, say >100k, getdate will be rather slow. >> >>>>> But since the nub of these dates probably will contain <10k dates, >> you >> >>>>> can >> >>>>> use nubindex http://www.jsoftware.com/help/dictionary/d221.htm >> >>>>> For that the following adverb will do (tested long time ago) >> >>>>> >> >>>>> nbind=:1 : '](i.!.0~ { u @:]) ~.' >> >>>>> >> >>>>> >> >>>>> R.E. Boss >> >>>>> >> >>>>> >> >>>>> > -----Oorspronkelijk bericht----- >> >>>>> > Van: general-boun...@jsoftware.com [mailto:general- >> >>>>> > boun...@jsoftware.com] Namens R.E. Boss >> >>>>> > Verzonden: woensdag 11 januari 2012 21:48 >> >>>>> > Aan: 'General forum' >> >>>>> > Onderwerp: Re: [Jgeneral] Data from csv files >> >>>>> > >> >>>>> > require 'dates' >> >>>>> > >> >>>>> > 100 #. getdate'2012/01/12' >> >>>>> > 20120112 >> >>>>> > >> >>>>> > I would transpose (|:) the matrix and then work a row at a time, >> >>>>> depending >> >>>>> > on the control vector. >> >>>>> > Recently I learned techniques to assign different verbs to >> different >> >>>>> items. >> >>>>> > >> >>>>> > >> >>>>> > R.E. Boss >> >>>>> > >> >>>>> > >> >>>>> > > -----Oorspronkelijk bericht----- >> >>>>> > > Van: general-boun...@jsoftware.com [mailto:general- >> >>>>> > > boun...@jsoftware.com] Namens Tom Szczesny >> >>>>> > > Verzonden: woensdag 11 januari 2012 21:13 >> >>>>> > > Aan: General forum >> >>>>> > > Onderwerp: Re: [Jgeneral] Data from csv files >> >>>>> > > >> >>>>> > > Thanks, that is very nice to know, but ... >> >>>>> > > >> >>>>> > > Since the csv files I need were created by me, I also know that >> >>>>> > > - the only occurrences of " are spuriously added. >> >>>>> > > - the only occurrences of - are in the representation of >> >>>>> negative >> >>>>> > > numbers, so I can define >> >>>>> > > >> >>>>> > > tblcsv=: 3 : 0 >> >>>>> > > r=: (-.y='"')#y >> >>>>> > > r=: '_' ((r='-')#i.$r) } r >> >>>>> > > ([: < ;._1 ',',]) ;._2 r >> >>>>> > > ) >> >>>>> > > >> >>>>> > > Next, I plan to figure out how to convert the columns with >> character >> >>>>> > > strings representing numbers into actual numbers, >> >>>>> > > and the columns with character strings representing dates ( >> >>>>> 2012/01/12 ) >> >>>>> > > into numbers representing dates ( 20120112 ), >> >>>>> > > where tblcsv becomes dyadic with a control vector like >> 'SDSSNDNSNS' >> >>>>> as >> >>>>> > the >> >>>>> > > left argument >> >>>>> > > indicating which columns are strings, dates & numbers. >> >>>>> > > >> >>>>> > > On Wed, Jan 11, 2012 at 2:27 PM, Ric Sherlock <tikk...@gmail.com >> > >> >>>>> wrote: >> >>>>> > > >> >>>>> > > > Note that you don't need to define tblcsv explicitly: >> >>>>> > > > tblcsv=: ([: <;._1 ','&,);._2 >> >>>>> > > > or >> >>>>> > > > tblcsv=: ([: <;._1 ',' , ]);._2 >> >>>>> > > > >> >>>>> > > > On Thu, Jan 12, 2012 at 6:29 AM, Tom Szczesny < >> tav...@gmail.com> >> >>>>> > > wrote: >> >>>>> > > > > tested ...... works . ..... thanks! >> >>>>> > > > > >> >>>>> > > > > On Wed, Jan 11, 2012 at 12:23 PM, R.E. Boss < >> r.e.b...@planet.nl >> >>>>> > >> >>>>> > wrote: >> >>>>> > > > > >> >>>>> > > > >> tblcsv =: 3 : 0 >> >>>>> > > > >> ([: <;._1 ',',]) ;._2 y >> >>>>> > > > >> ) >> >>>>> > > > >> (untested) >> >>>>> > > > >> >> >>>>> > > > >> R.E. Boss >> >>>>> > > > >> >> >>>>> > > > >> >> >>>>> > > > >> > -----Oorspronkelijk bericht----- >> >>>>> > > > >> > Van: general-boun...@jsoftware.com [mailto:general- >> >>>>> > > > >> > boun...@jsoftware.com] Namens Tom Szczesny >> >>>>> > > > >> > Verzonden: woensdag 11 januari 2012 17:55 >> >>>>> > > > >> > Aan: General forum >> >>>>> > > > >> > Onderwerp: Re: [Jgeneral] Data from csv files >> >>>>> > > > >> > >> >>>>> > > > >> > Given >> >>>>> > > > >> > >> >>>>> > > > >> > cutc =: 3 : 0 >> >>>>> > > > >> > < ;._1 ',',y >> >>>>> > > > >> > ) >> >>>>> > > > >> > >> >>>>> > > > >> > tblcsv =: 3 : 0 >> >>>>> > > > >> > cutc ;._2 y >> >>>>> > > > >> > ) >> >>>>> > > > >> > >> >>>>> > > > >> > tblcsv 1!:1 <'test.csv' >> >>>>> > > > >> > >> >>>>> > > > >> > I assumed that I would be able to represent this as a >> single >> >>>>> > > > definition, >> >>>>> > > > >> > such as >> >>>>> > > > >> > >> >>>>> > > > >> > tblcsv =: 3 : 0 >> >>>>> > > > >> > ( <;._1 ',',) ;._2 y >> >>>>> > > > >> > ) >> >>>>> > > > >> > >> >>>>> > > > >> > or >> >>>>> > > > >> > >> >>>>> > > > >> > tblcsv =: 3 : 0 >> >>>>> > > > >> > (( <;._1',',)&) ;._2 y >> >>>>> > > > >> > ) >> >>>>> > > > >> > >> >>>>> > > > >> > I've tried several other vaiations, and all result in >> 'syntax >> >>>>> > error'. >> >>>>> > > > Am >> >>>>> > > > >> I >> >>>>> > > > >> > missing something, or does the verb applied to each 'cut' >> >>>>> interval >> >>>>> > > > need >> >>>>> > > > >> to >> >>>>> > > > >> > be defined separately? >> >>>>> > > > >> > >> >>>>> > > > >> > On Mon, Jan 9, 2012 at 5:00 PM, Arthur Anger < >> an...@mit.edu> >> >>>>> > > wrote: >> >>>>> > > > >> > >> >>>>> > > > >> > > I often use Rank to select sub-arrays from an array: >> >>>>> > > > >> > > <"0 i. 7 >> >>>>> > > > >> > > --Art >> >>>>> > > > >> > > ------------------ >> >>>>> > > > >> > > Quoting general-requ...@jsoftware.com: >> >>>>> > > > >> > > . . . >> >>>>> > > > >> > > > Message: 2 >> >>>>> > > > >> > > > Date: Mon, 9 Jan 2012 11:46:24 -0500 >> >>>>> > > > >> > > > From: Tom Szczesny <tav...@gmail.com> >> >>>>> > > > >> > > > Subject: Re: [Jgeneral] Data from csv files >> >>>>> > > > >> > > > To: General forum <general@jsoftware.com> >> >>>>> > > > >> > > > Message-ID: >> >>>>> > > > >> > > > <CABn7SNYFw2gyAPKcjx1DMLEru97NMTst6zoGx= >> >>>>> > > > >> > > 3olq1rko7...@mail.gmail.com> >> >>>>> > > > >> > > > Content-Type: text/plain; charset=ISO-8859-1 >> >>>>> > > > >> > > > >> >>>>> > > > >> > > > As mentioned in the dictionary entry for cut: >> >>>>> > > > >> > > > the phrase u;._2 y applies the verb u to each >> >>>>> interval >> >>>>> > > > created >> >>>>> > > > >> by >> >>>>> > > > >> > > cut, >> >>>>> > > > >> > > > where the fret is the last item, and marks the ends of >> >>>>> the >> >>>>> > > > intervals. >> >>>>> > > > >> > > > >> >>>>> > > > >> > > > What is the notation for applying the "each" concept >> to a >> >>>>> verb >> >>>>> > > > >> > > independent >> >>>>> > > > >> > > > of cut ? >> >>>>> > > > >> > > > For example, >> >>>>> > > > >> > > > <i.7 >> >>>>> > > > >> > > > +-------------+ >> >>>>> > > > >> > > > |0 1 2 3 4 5 6| >> >>>>> > > > >> > > > +-------------+ >> >>>>> > > > >> > > > >> >>>>> > > > >> > > > How do you express >> >>>>> > > > >> > > > < each i.7 >> >>>>> > > > >> > > > and get 7 individually boxed items? >> >>>>> > > > >> > > > (I could not find an entry for "each" in the Index, >> nor >> >>>>> in >> >>>>> the >> >>>>> > > > >> > > Vocabulary.) >> >>>>> > > > >> > > . . . >> >>>>> > > > >> > > > End of General Digest, Vol 76, Issue 8 >> >>>>> > > > >> > > > ************************************** >> >>>>> > > > >> > > >> >>>>> > > > >> > > >> >>>>> > > > >> >>>>> >> ---------------------------------------------------------------------- >> >>>>> > > > >> > > 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 >> >>>>> > > > >> >>>>> > > >> >>>>> >> ---------------------------------------------------------------------- >> >>>>> > > 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 >> > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm