From: Martin Maechler <maechler_at_stat.math.ethz.ch>

Date: Sat, 26 Jul 2008 10:01:31 +0200

>> x[upper.tri(x)] <- NA

* >> write.table(x, na="", row.names=FALSE, col.names=FALSE)
*

* >>
*

4 20 26 32

5 26 32 38 44

* >>
*

* >> --
*

>> View this message in context: http://www.nabble.com/Write-lower-half-of-distance-matrix-only-tp18649556p18650794.html

* >> Sent from the R help mailing list archive at Nabble.com.
*

* >>
*

* >> ______________________________________________
*

* >> 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.
*

* >>
*

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. Received on Sat 26 Jul 2008 - 08:08:44 GMT

Date: Sat, 26 Jul 2008 10:01:31 +0200

>>>>> "jh" == jim holtman <jholtman_at_gmail.com> >>>>> on Fri, 25 Jul 2008 12:34:49 -0400 writes: >>>>> "jh" == jim holtman <jholtman_at_gmail.com> >>>>> on Fri, 25 Jul 2008 12:34:49 -0400 writes:

jh> Does this do what you want:

jh> [,1] [,2] [,3] [,4] [,5] jh> [1,] 1 6 11 16 21 jh> [2,] 2 7 12 17 22 jh> [3,] 3 8 13 18 23 jh> [4,] 4 9 14 19 24 jh> [5,] 5 10 15 20 25

>> x[upper.tri(x)] <- NA

jh> 1 jh> 2 7 jh> 3 8 13 jh> 4 9 14 19 jh> 5 10 15 20 25

Yes, but why not use the S / R objects / methods that were exactly written for the purpose?

I strongly recommend to make your matrix into a "dist" object (or a "dissimilarity" object -- the latter from package 'cluster', using function daisy(.)) !

> m <- matrix(1:25,5); m <- m + t(m); diag(m) <- 0 > (D <- as.dist(m))

1 2 3 4

2 8 3 14 20

4 20 26 32

5 26 32 38 44

Note that the above does *not* print the all-0 diagonal and so saves printing space.

Martin Maechler, ETH Zurich

jh> On Fri, Jul 25, 2008 at 8:30 AM, pgseye <prseye_at_gmail.com> wrote:

* >>
*

>> Thanks Jim,

* >>
** >> The morphometry software I mentioned outputs distance matrices in the
** >> format:
** >>
** >> 0.0000
** >> 7.1598 0.0000
** >> 8.7241 8.3506 0.0000
** >> 9.5217 7.2457 2.5642 0.0000
** >>
** >> I would have liked to write to a file the same type of matrix in R, to
** >> ensure the same data format. Mantel for Windows is optimally setup to take
** >> this type of matrix.
** >>
** >> Thanks
** >>
** >>
** >>
** >>
** >> jholtman wrote:
*

>>> >>> How do you want the lower half written out? can you give us an >>> example of the input matrix and then what you would expect to see on >>> the output. Is it still a matrix with the upper half set to zero/NA? >>> Do you want it as a vector? What is the other program expecting as >>> input? >>> >>> You need to provide more information so that we can provide suggestions. >>> >>> On Fri, Jul 25, 2008 at 7:03 AM, pgseye <prseye_at_gmail.com> wrote: >>>> >>>> Hi, >>>> >>>> I'm very new to R. I want to know if there is any way to write only the >>>> lower half of a distance matrix created in R to a csv file for example. >>>> I >>>> get the 'cannot coerce class "dist" into a data.frame' message when I >>>> try. >>>> I have used as.matrix and can write to a file this way, but as a full >>>> matrix. >>>> >>>> The reason I only want the lower half is that I've been doing some Mantel >>>> correlations with distance matrices (of Procrustes distances) generated >>>> by >>>> other (geometric morphometric) software that are in this format. However, >>>> I'm needing to use an alternative such as R to calculate distance >>>> matrices >>>> of Fourier coefficients which the other software can't do. So far, the >>>> Mantel correlations calculated from these two matrices (with R and also >>>> another software (Mantel for Windows)) are slightly different (when they >>>> should be exactly the same) and I'm wondering whether it's because the >>>> input >>>> format is different (ie one full, one half). >>>> >>>> Thanks, >>>> >>>> Paul >>>> >>>> >>>> -- >>>> View this message in context: >>>> http://www.nabble.com/Write-lower-half-of-distance-matrix-only-tp18649556p18649556.html >>>> Sent from the R help mailing list archive at Nabble.com. >>>> >>>> ______________________________________________ >>>> 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. >>>> >>> >>> >>> >>> -- >>> 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 >>> PLEASE do read the posting guide >>> http://www.R-project.org/posting-guide.html >>> and provide commented, minimal, self-contained, reproducible code. >>> >>>

>> View this message in context: http://www.nabble.com/Write-lower-half-of-distance-matrix-only-tp18649556p18650794.html

jh> -- jh> Jim Holtman jh> Cincinnati, OH jh> +1 513 646 9390

jh> What is the problem you are trying to solve?

jh> ______________________________________________ jh> R-help_at_r-project.org mailing list jh> https://stat.ethz.ch/mailman/listinfo/r-helpjh> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html jh> and provide commented, minimal, self-contained, reproducible code.

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. Received on Sat 26 Jul 2008 - 08:08:44 GMT

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.2.0, at Sat 26 Jul 2008 - 08:32:30 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*