Test for array slice?

Started by Peter Feinalmost 21 years ago4 messagesgeneral
Jump to latest
#1Peter Fein
pfein@pobox.com

Hi-

I want to do something like this (pardon my pseudocode):

A=ARRAY[4, 5, 6, 7, 8]
B=ARRAY[5, 6]

is_sliceof(A, B), i.e., there exists a slice of A that equals B. My
best thought ATM is to convert both to strings and use pattern matching
- any better ideas?

--Pete

#2Joe Conway
mail@joeconway.com
In reply to: Peter Fein (#1)
Re: Test for array slice?

Peter Fein wrote:

I want to do something like this (pardon my pseudocode):

A=ARRAY[4, 5, 6, 7, 8]
B=ARRAY[5, 6]

is_sliceof(A, B), i.e., there exists a slice of A that equals B. My
best thought ATM is to convert both to strings and use pattern matching
- any better ideas?

I can't think of a really good way to do that directly in Postgres, but
I'd bet (still not sure though) there is a way in R.
http://www.r-project.org/index.html
If so, you could use PL/R:
http://www.joeconway.com/plr/

HTH,

Joe

#3Sean Davis
sdavis2@mail.nih.gov
In reply to: Joe Conway (#2)
Re: Test for array slice?

On Jun 3, 2005, at 12:32 PM, Joe Conway wrote:

Peter Fein wrote:

I want to do something like this (pardon my pseudocode):
A=ARRAY[4, 5, 6, 7, 8]
B=ARRAY[5, 6]
is_sliceof(A, B), i.e., there exists a slice of A that equals B. My
best thought ATM is to convert both to strings and use pattern
matching
- any better ideas?

I can't think of a really good way to do that directly in Postgres,
but I'd bet (still not sure though) there is a way in R.
http://www.r-project.org/index.html
If so, you could use PL/R:
http://www.joeconway.com/plr/

This is probably also easy in perl and python as well.

Sean

#4Peter Fein
pfein@pobox.com
In reply to: Sean Davis (#3)
Re: Test for array slice?

Sean Davis wrote:

On Jun 3, 2005, at 12:32 PM, Joe Conway wrote:

Peter Fein wrote:

I want to do something like this (pardon my pseudocode):
A=ARRAY[4, 5, 6, 7, 8]
B=ARRAY[5, 6]
is_sliceof(A, B), i.e., there exists a slice of A that equals B. My
best thought ATM is to convert both to strings and use pattern matching
- any better ideas?

I can't think of a really good way to do that directly in Postgres,
but I'd bet (still not sure though) there is a way in R.
http://www.r-project.org/index.html
If so, you could use PL/R:
http://www.joeconway.com/plr/

This is probably also easy in perl and python as well.

Actually, I can't think of a great way to do this in python. Maybe
something clever with iterators or list.index... My elements will all
be integers, so the string conversion won't cause any trouble - regexps
seem to be the way to go. Inefficient, since it needs more comparisons
(by character) than comparing ints would, but at least it'll be at C
speed. ;) Thanks all.

--
Peter Fein pfein@pobox.com 773-575-0694

Basically, if you're not a utopianist, you're a schmuck. -J. Feldman