Dear Mata users:
I am writing because I previously got some wonderful suggestions about how to quickly find elements shared by two lists. The previous post on "common elements in a list" can be found under the mata topic "common elements in a list." Anyways: the latest problem I am hoping for insights into is one in which the elements of the list have multiple values. As an example, the following does what I want, but is pretty inefficient because of the use of a loop particularly when large dimensions are involved.
The variable indA then contains ones in the position of the rows of A that appear in B, and zeros for all the other rows of A. To reiterate the question: is there a way to do this without looping and/or more quickly?
Thanks in advance,
Matt Baker
I am writing because I previously got some wonderful suggestions about how to quickly find elements shared by two lists. The previous post on "common elements in a list" can be found under the mata topic "common elements in a list." Anyways: the latest problem I am hoping for insights into is one in which the elements of the list have multiple values. As an example, the following does what I want, but is pretty inefficient because of the use of a loop particularly when large dimensions are involved.
Code:
mata: A=1,1 \ 1,2 \ 2,1 \ 2,4 \ 4,5 \ 6,8 B=1,1 \ 1,2 \ 1,3 \ 2,3 \ 3,3 \ 4,5 \ 6,9 \ 7,2 indA=J(rows(A),1,0) for (i=1;i<=rows(A);i++) { if (anyof(rowsum(A[i,]:==B),2)) indA[i]=1 } end
Thanks in advance,
Matt Baker