Hi all,
I have a matrix simulating migration in a spatial model. I want to be able to define movement (the values of m1, m2 and m3) as only != 0 between adjacent patches and contingent on certain conditions as defined in the function. Here is the code: WET<-function(t) {everglades$precipitation[t]} #simply reads precipitation data from a csv, value is numeric AB<-function(WET,t) {ifelse(WET(t)>0, 0.0001, 0)} BC<-function(WET,t) {ifelse(WET(t)>0, 0.0001, 0)} NP<-4 m1 <- matrix(0, NP,NP) m2 <- matrix(0,NP,NP) m3 <- matrix(0,NP,NP) for (i in 1:NP) { for (j in 1:NP) { if ((i%%sqrt(NP)) == 0 & i!=j) { if(j == i+sqrt(NP) | j == i-1 | j == i-sqrt(NP)) { m1[j,i] <- AB m1[i,j] <- AB m2[j,i] <- 0.00025 m2[i,j] <- 0.00025 m3[j,i] <- BC m3[i,j] <- BC } } if (i%%sqrt(NP) == 1) { if(j == i+sqrt(NP) | j == i+1 | j == i-sqrt(NP) ) { m1[j,i] <- AB m1[i,j] <- AB m2[j,i] <- 0.00025 m2[i,j] <- 0.00025 m3[j,i] <- BC m3[i,j] <- BC } } if (i%%sqrt(NP)!=0 & i%%sqrt(NP)!=1 & i!=j) { if(j == i+sqrt(NP) | j == i+1 | j == i-sqrt(NP) | j == i-1) { m1[j,i] <- AB m1[i,j] <- AB m2[j,i] <- 0.00025 m2[i,j] <- 0.00025 m3[j,i] <- BC m3[i,j] <- BC } } } } Please could somebody advise me as to where I'm going wrong and how to get it right? I have tried several different permutations and can't seem to do so. I tried googling keywords "inserting function as matrix element" but couldn't find any advice online. I'm very inexperienced at coding so apologies if this is very simple. Thank you for any assistance you are able to give, Aimee. ______________________________________________ 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.