Raul's code is there to mostly handle strings of variable size. It can be
generalized though:
'abc' (] -:"1 ,:@:{:@:$@:] {. [) 'abd','abc' ,: 'yyy'
0 1 0
'abc' (] *./"1@e. ,:@:{:@:$@:] {. [) 'abd','abc' ,: 'yyy'
0 1 0
if your search array has no padding/fills or you know the fixed length, then
just -:"1 is what I think you want, though variations with e. work if you are
interested in partial matches.
----- Original Message -----
From: Joe Bogner <[email protected]>
To: [email protected]
Cc:
Sent: Thursday, August 28, 2014 8:12:46 AM
Subject: Re: [Jprogramming] locating indices of string in list of strings
Tracy - symbols are a good way to go. Thanks for reminding me of them.
Raul - that's what I was missing... I needed to use e. with the same
shape: eg. arr e. (1 3 $ 'ab ')... Thank you. Your examples are nice
and generic and faster than -:"1
( I have a 68 million row memory mapped table of 8 character strings I
am searching )
arr =: 1e8 2 $ ('ab','cd')
timespacex '''ab'' -:"1 arr'
0.543927 1.34219e8
timespacex 'arr e. ,:({:$arr){.''ab'''
0.398904 1.3435e8
('ab' -:"1 arr) -: (arr e. ,:({:$arr){.'ab')
Of course on my actual data it's slightly different:
timespacex '''ZZZZ145'' -:"1 p'
0.109682 1.3422e8
timespacex '(p e. ,:({:$p){.''ZZZZ145'')'
0.728868 1.34222e8
$ p
68242450 8
((p e. ,:({:$dat__p){.'ZZZZ145')) -: ('ZZZZ145' -:"1 p)
1
bill - Not sure what to do with E.
Bjorn - 'ab' I. arr doesn't seem to help either... I was hoping for a
mask of 0 1 0 1 for whether it was found or the indices
On Thu, Aug 28, 2014 at 7:56 AM, Björn Helgason <[email protected]> wrote:
> 'ab' I. arr
>
> __-------------------_
> https://groups.google.com/forum/m/#!forum/havaogskulamal
> On 28 Aug 2014 10:58, "Joe Bogner" <[email protected]> wrote:
>
>> Apologies for the extremely basic question, but I am struggling with
>> this after searching NuVoc and the dictionary.
>>
>> How do I locate all the indices of 'ab' in arr?
>>
>> arr=:10 $ > ;: 'ab cd yyy'
>>
>> surely this isn't the best way:
>>
>> ] (3 = +/"1 'ab' i. arr) # arr
>> ab
>> ab
>> ab
>> ab
>>
>>
>> I have been primarily dealing with boxed strings up to this point,
>> which seemed easier since it was locating an atom in a list, not a
>> list in a table (practicing my vocabulary here... I might be wrong
>> though)
>>
>>
>> Thanks,
>> Joe
>> ----------------------------------------------------------------------
>> 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