Hi there,

I would like to find a more efficient way of permuting the rows and columns of 
a symmetrical matrix that represents ecological or actual distances between 
objects in space.  The permutation is of the type used in a Mantel test.

Specifically, the permutation has to accomplish something like this:


Original matrix addresses:

a11   a12   a13

a21   a22   a23

a31   a32   a33


Example permutation

a22   a23   a21

a32   a33   a31

a12   a13   a11

that is relative positions of rows and columns are conserved in the permutation.

Basically, I have been doing this in a "for" loop by (1) permuting the raw data 
vector using "sample", (2) generating a lower triangular distance matrix from 
the permuted raw data using the "distance" function from "ecodist', and (3) 
calculating a bunch of statistics including the Mantel correlation and multiple 
regression statistics, which are then stored in blank matrices that were 
declared prior to beginning the loop.  The whole procedure needs to repeat at 
least 999 times but 1999 times would be better and 9999 times would be ideal.

The problem is, R-users will know, is that using "for" loops like this is slow, 
and gets slower the further into the loop you get.

However, I am not a sophisticated programmer, and cannot think of a more 
efficient way to do this.

Thanks in advance,

Andy Park (University of Winnipeg).

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

Reply via email to