Thanks for the tip, Nikhil. However, i need only one matrix as input for
another to compute for non-bipartite matching which minimizes pairwise
distances between observations. As such, I need the georeference (id) of the
observations for subsequent processing. Below is an illustration.

> #generate data
> x <- as.matrix(runif(5))
> Sx <- var(x)
>
> #generate id
> set.seed(1)
> id1 <- sample(1:2,5, replace=T)
> id2 <- c(1:5)
> rownames(x) <- paste(id1, id2)
>
> #generate distance
> dist <- as.matrix(
+   apply(x,1,function(i){
+     mahalanobis(x,i,Sx)
+    }
+  )
+ )
>
> #print matrices
> x
         [,1]
1 1 0.2059746
1 2 0.1765568
2 3 0.6870228
2 4 0.3841037
1 5 0.7698414
> dist
           1 1        1 2        2 3       2 4        1 5
1 1 0.00000000 0.01165534 3.11660015 0.4273402 4.28210082
1 2 0.01165534 0.00000000 3.50943798 0.5801450 4.74056406
2 3 3.11660015 3.50943798 0.00000000 1.2358255 0.09237602
2 4 0.42734018 0.58014499 1.23582554 0.0000000 2.00395492
1 5 4.28210082 4.74056406 0.09237602 2.0039549 0.00000000

The geo-id is composed of two references, the first digit for the region and
the next for the observation itself. What I'm thinking of is for pairwise
distance between observations of different regions, say site-11 and site-23
or site-24 to be replaced by a large number, say 999999. I need the id for
future processing, though.
Maybe I can stack the matrices generated using your tip to form a block
diagonal matrix, but then I do not have my ids? Im really sorry. Im a bit
lost.

Cheers,
Michael

On Mon, Jul 19, 2010 at 10:10 PM, Nikhil Kaza <nikhil.list@gmail.com> wrote:

>
> replace dist with mahalanobis distance in the following example.
>
> a <- cbind(runif(10), sample(1:3, 10, replace=T))
> a.L <- split(a,a[,2])
> dist.L <- lapply(a.L, dist)
>
>
>
> Nikhil Kaza
> Asst. Professor,
> City and Regional Planning
> University of North Carolina
>
> nikhil.list@gmail.com
>
>
> On Jul 19, 2010, at 9:24 AM, Michael Ralph M. Abrigo wrote:
>
>  Hi! I am trying to implement non-bipartite matching. I have around 500
>> sites
>> which can be clustered by 10 regions. I am able to calculate pairwise
>> Mahalanobis distances between sites (thanks to another post in the forum).
>> However, I want to constrain my match to sites within the same region.
>> Thus
>> I want to replace elements of the distance matrix with a high value, say
>> 999999, for sites not of the same region so that the pair will not be
>> matched.
>> In the original data file I have information on which sites belong to what
>> region. However, when I compute for pairwise Mahalanobis distances, I only
>> use a subset of the file, which, naturally, does not include the
>> georeference of the sites. How should I do this? Any hint will be most
>> appreciated.
>> Btw, I am relatively new in using R. I may export the matrix to another
>> program and replace the elements there, but that is a very very dirty and
>> rough trick that I would rather not do given better options.
>> Many thanks in advance.
>>
>> Cheers,
>> Michael
>>
>> --
>> "I am most anxious for liberties for our country... but I place as a prior
>> condition the education of the people so that our country may have an
>> individuality of its own and make itself worthy of liberties... " Jose
>> Rizal,1896
>>
>>        [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help@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.
>>
>
>


-- 
"I am most anxious for liberties for our country... but I place as a prior
condition the education of the people so that our country may have an
individuality of its own and make itself worthy of liberties... " Jose
Rizal,1896

	[[alternative HTML version deleted]]

