No. They are not the same. For a very small sample file the results are: a=: makenumcol fixcsv (1!:1<'sm.csv') -.'"/' b=:'ssdndssnnnnnnnnnnnnndnns' tblcsv 1!:1 <'sm.csv' a-:b 0 (<a:;7){a +--++---+++----+----+----+ |qu||444|||2000|6761|-100| +--++---+++----+----+----+ (<a:;7){b +--++---+++----+----+----+ |qu||444|||2000|6761|_100| +--++---+++----+----+----+
The minus sign did not get converted properly in the table/csv case. On Thu, Jan 12, 2012 at 3:46 PM, Ric Sherlock <tikk...@gmail.com> wrote: > 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 > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm