Hi Akos,

Thank you for the code. It worked. I reordered the dist objects as I cannot
access the dataset of one of the two distance matrix.

> dist_b_reordered <- as.dist(as.matrix(dist_b)[attr(dist_a, "Labels"),
attr(dist_a, "Labels")])
> all.equal(dist_a, dist_b_reordered, check.attributes = FALSE)
[1] "Mean relative difference: 0.8977224"

There is any statistical test that you suggest to compare the two
distances? I would like to see if the two matrices show a similar pattern,
e.g. mantel test?

Thanks,

Gian






On Sat, 1 Jun 2019 at 00:55, Bede-Fazekas Ákos <bfalevl...@gmail.com> wrote:

> Dear Gian,
> Let's do a small reproducible example:
> library(vegan)
> data(varespec)
> set.seed(12345)
> df_a <- t(varespec)
> df_b <- t(varespec[, sample.int(ncol(varespec))]) # shuffle the original
> column order
> dist_a <- vegdist(df_a); dist_b <- vegdist(df_b)
> all.equal(dist_a, dist_b, check.attributes = FALSE)
>
> Now, you have two options. If you have access to the original
> data.frame/matrix from which the dist object was created, you can
> reorder the rows of the second dataset to match that of the first one.
> Then do the distance matrix calculation again.
> df_b_reordered <- df_b[rownames(df_a), ]
> dist_b_reordered1 <- vegdist(df_b_reordered)
> all.equal(dist_a, dist_b_reordered1, check.attributes = FALSE)
>
> If you have no access to the original dataset and/or can not recalculate
> the distance matrix (e.g. due to computer capacity or time), you can
> reorder the distance matrix (both the rows and columns).
> dist_b_reordered2 <- as.dist(as.matrix(dist_b)[attr(dist_a, "Labels"),
> attr(dist_a, "Labels")])
> all.equal(dist_a, dist_b_reordered2, check.attributes = FALSE)
>
> HTH,
> Ákos Bede-Fazekas
> Hungarian Academy of Sciences
>
>
> 2019.06.01. 1:53 keltezéssel, Gian Maria Niccolò Benucci írta:
> > Hello,
> >
> > I have two vegan::vegdist objects I want to use into a vegan::mantel
> test.
> > However, rows and columns of the two objects are not in the same order.
> Is
> > there a way to reorder them one another?
> >
> > For example,
> >
> >> dist_a
> >          Lycovolu  Hupeaust  Lycofast  Lycodeut
> > Hupeaust 0.9045557
> >
> > Lycofast 0.6835441 0.8569781
> >
> > Lycodeut 0.8036577 0.8294657 0.7958988   ...
> > ...
> >
> >> dist_b
> >           Lycodeut   Lycofast   Lycoscar   Lycovolu
> > Lycofast 0.09340659
> >
> > Lycoscar 0.08974359 0.01831502
> >
> > Lycovolu 0.09073476 0.01099655 0.01008080   ...
> > ...
> >
> > Thanks,
> >
>
> _______________________________________________
> R-sig-ecology mailing list
> R-sig-ecology@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-ecolog
> <https://stat.ethz.ch/mailman/listinfo/r-sig-ecology>y



*----- Do not print this email unless you really need to. Save paper and
protect the environment! -----*

        [[alternative HTML version deleted]]

_______________________________________________
R-sig-ecology mailing list
R-sig-ecology@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-ecology

Reply via email to