# Re: [R] Convert a List of Distances to a Distance Matrix

From: jim holtman <jholtman_at_gmail.com>
Date: Wed, 12 Mar 2008 20:48:42 -0500

Here is one way of doing it:

```+ A B .5
+ A C .25
+ B C .5"), as.is=TRUE)
```

> closeAllConnections()
> # get the unique names
> x.names <- sort(unique(c(x[], x[])))
> # create a matrix of the right size and put names on it
> x.dist <- matrix(0, length(x.names), length(x.names))
> dimnames(x.dist) <- list(x.names, x.names)
> # create indices by converting names to numbers and create the normal and reversed
> # to fill in all the matrix
> x.ind <- rbind(cbind(match(x[], x.names), match(x[], x.names)),
```+                cbind(match(x[], x.names), match(x[], x.names)))
```

> x.dist[x.ind] <- rep(x[], 2)
> x.dist

A B C

```A 0.00 0.5 0.25
B 0.50 0.0 0.50
C 0.25 0.5 0.00
```

>

On Wed, Mar 12, 2008 at 7:45 PM, Charles Willis <willis.charlie_at_gmail.com> wrote:
> Hello,
>
> Is there an easy function for switching list to matrix. My list is of
> genetic distances between species pairs:
>
> A A 0
> A B .5
> A C .25
> B C .5
>
> and I want a distance matrix such as:
>
> A B C
> A 0 .5 .25
> B .5 0 .5
> C .25 .5 0
>
> for use in a mantel test.
>
> Thank you for the help!
>
> cheers,
> charlie
>
> --
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Charles G. Willis
> Department of Organismic and Evolutionary Biology
> 22 Divinity Ave Cambridge MA 02139
> HP (857) 488-2506
> WP (617) 496-3890
> cgwillis_at_oeb.harvard.edu
> http://www.people.fas.harvard.edu/%7Ecgwillis/
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help_at_r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> and provide commented, minimal, self-contained, reproducible code.
>

```--
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem you are trying to solve?

______________________________________________
R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help