Hi!, 
I'm really hoping someone out there will be able to help me.

I recently started my MSc dissertation on Population Projection Matrices, which 
has been going well until now. I am trying to set-up a general script that does 
a pairwise comparison of all elements in my matrices. 

So for example, given that I have the following matrix S:

> S

        [,1]     [,2]         [,3]

[1,] 0.00000 0.007361183 0.0001634936

[2,] 13.88458 0.353988378 0.0000000000

[3,] 0.00000 16.086367098 0.3572819557

I'd like to create a matrix SA for each element in my matrix compared to 
another element like so:

> SA 

S-[1,1]

         [,1]        [,2]        [,3]

[1,] [1,1]-[1,1] [1,2]-[1,1] [1,3]-[1,1]

[2,] [2,1]-[1,1] [2,2]-[1,1] [2,3]-[1,1]

[3,] [3,1]-[1,1] [3,2]-[1,1] [3,3]-[1,1]



S-[1,2]

[...]



S-[1,3]

[...]

... and so on

The aim is to be able to prove existing rules and trends across matrix 
dimensions. 

For example, I've been trying to test whether the first line of values 
decreases or remains the same from column 1 to the penultimate column: S[1,j] 
>= S[1,l>j]

The last thing I tried was:

M<-Matlab2R("[0 24.724 1377.48;0.029328 0.26 0;0 0.014 0.78]") 

w <- abs(Re(eigen(M)$vectors[,1]))

v <- abs(Re(eigen(t(M))$vectors[,1]))

w <- w/sum(w)

v <- v/(t(v)%*%w) 

S <- (v%*%t(w))/as.vector(t(v)%*%w)

S



n<- length(S)

M.comp <- array(S,dim=c(n,n,n,n))

for (i in 1:n) {

for (j in 1:n) {

for (k in 1:n) {

for (l in 1:n) {

poscompa[1,3,1,j-1] <- S[i,j]<=S[k,l] # if=1, then TRUE and if=0, then FALSE 

}}}}

M.comp

sum(poscompa[1,3,1,1:n]) # should give me the value for n. I know this doesn't 
test it accurately, but first I need to get the loops to work right.

I'm getting an array of errors such as "can't find function poscompa (or 
compa)", "subscripts out of range" or "type of closure not valid" regardless of 
what I try. Using COMPAR (poscompa and compa) was the last recommendation I 
got, but I'm starting to wonder if there might be other ways to go about this. 
All out-of-the-box ideas I've come up with and tried haven't gotten me much 
farther. I've now practically exhausted my creative thinking, and I'm becoming 
very frustrated. I'd really like to get this script going since my current one 
would make my life hell for large populations (60x60 population matrices). 

Any ideas on how I could move forward? 



Many, many thanks!

Marta

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

Reply via email to