Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.

# st: RE: matrix dissimilarity

 From Nick Cox <[email protected]> To "'[email protected]'" <[email protected]> Subject st: RE: matrix dissimilarity Date Fri, 7 Jan 2011 13:28:31 +0000

```Look again at the help for -foreach- to see that what you want is more likely to be

matrix dissimilarity DE`p'`sec' = att1 att2 att3 att4

However, your syntax does rather depend on the levels of -p- and -sec- being zero or positive integers, which I can't check from here, so that the resultant matrix names are legal. Moral: Pose examples using datasets everyone can try.

Also, if p = 11 and sec = 2 you are naming the resultant matrix DE112, which is also going to be what you will try if p = 1 and sec = 12. Moral: use an underscore to disambiguate:

matrix dissimilarity DE`p'_`sec' = att1 att2 att3 att4

But even that does work, the dissimilarity matrices will be all the same without extra restrictions on the right-hand side!

Nick
[email protected]

Alp Eren Yurtseven

I want to create a matrix for each sector and year, holding the
Euclidean distance between all the observations for variables att1 att2
att3 att4. p and sec denote year and sector respectively. I want to do
this with a nested loop:

levelsof p,local(y)
levelsof sec,local(s)

foreach p in `y' {
foreach sec in `s' {
matrix dissimilarity DE`s'`y'=att1 att2 att3 att4
}
}

I am not very familiar with loop structures in Stata and not
surprisingly I get an invalid syntax error. I'd be very glad if you
could give me some hints to solve this problem. Thanks in advance.

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/
```