[R] "pattern matching" accross multiple matrices

Gabor Grothendieck ggrothendieck at gmail.com
Thu Nov 8 19:31:09 CET 2007


Assume entries which are neither Case1 nor Case2 should be set to 0.
Then:

Case1 * (A == 1) * (D == 1) * (P == 1) + Case2 * (A == -1) * (D == -1)
* (P == -1)

# if A, D and P have their component values in the set [-1, 1] then
this works too:

Case1 * (pmin(A, D, P) == 1) + Case2 * (pmax(A, D, P) == -1)


On Nov 8, 2007 12:27 PM, Martin Tomko <martin.tomko at gmail.com> wrote:
> Hi all,
>
> I have a set of patterns which can occur in a series of (3) matrices. I
> want to identify those and create a fourth one with the identifiers of
> the cases.
>
> Something like:
>
>        for (i in 1:l) {
>                for (j in 1:w) {
>
>                A[A[i,j]==1 & D[i,j]==1 & P[i,j]==1] <- Case1;
>                A[A[i,j]==-1 & D[i,j]==-1 & P[i,j]==-1] <- Case2;
>
> etc....
> }
> }
>
> the code seems to run, but is very slow.... Could anyone please suggest
> a better approach? I was thinking that 3 matrices could be stacked in a
> cube, and the column of a cube searched for a pattern, but am not sure
> how to do that...
>
> Thanks
> Martin
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list