The dates did not get converted properly either:

   (<a:;20){a
+---+++--------+++++
|dte|||20041120|||||
+---+++--------+++++
   >}.(<a:;20){a


20041120




   >}.(<a:;20){b
       0
       0
20041120
       0
       0
       0
       0


On Thu, Jan 12, 2012 at 4:16 PM, Tom Szczesny <tav...@gmail.com> wrote:

> 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

Reply via email to