I have a binary matrix that represents a map of invasive species risk (1 = infested; 0 = uninfested). It started as a matrix of probabilities (developed in ArcMap) that I converted to binary with this R code: binary.matrix<-matrix(rbinom(length(prob.matrix),prob=prob.matrix,size=1),nrow=nrow(prob.matrix))
Now, I would like to "spread" the risk for year 2 of the invasion. I'd like to do this by location, so, for every cell that is currently a 1, next year it's immediate neighbors (above, below, to the right and left) would also become ones. Here is a function I came up with to attempt this (clearly, my function writing is rough, to say the least): matrix.function<-function(N){ binary.matrix<-matrix(rbinom(length(prob.matrix),prob=prob.matrix,size=1),nrow=nrow(prob.matrix)) res<-numeric(N) for (i in 1:N){ res[i]<-binary.matrix if (res[i]==1){ res[,i+1]=1 res[,i-1]=1 } } } When I run this code, I get many messages saying "In res[i]<-binary.matrix : number of items to replace is not a multiple of replacement length" I know that if I actually got this to work, it would be a string of numbers (because of the "numeric"), but I'm just working with my limited function-writing knowledge, and I assumed it would be possible to convert the results to a matrix later on. I'm aware that this function is probably a disaster, but that's why I'm here! -- View this message in context: http://www.nabble.com/%22Spreading-risk%22-in-a-matrix-tp18535227p18535227.html Sent from the R help mailing list archive at Nabble.com. ______________________________________________ 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.