Dear R-list,
Could anybody tell me how to make one matrix as the below:
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] - 2 3 4 5 6
[2,] 2 - 2 3 4 5
[3,] 3 2 - 2 3 4
[4,] 4 3 2 - 2 3
[5,] 5 4 3 2 - 2
[6,] 6 5 4 3 2 -
Thanks in advance,
--
Jose Claudio Faria
Brasil/Bahia/UESC/DCET
Estatistica Experimental/Prof. Adjunto
mails:
joseclaudio.faria at terra.com.br
jc_faria at uesc.br
jc_faria at uol.com.br
tel: 73-3634.2779
On 9/10/05, Jose Claudio Faria <joseclaudio.faria at terra.com.br> wrote:> Dear R-list, > > Could anybody tell me how to make one matrix as the below: > > [,1] [,2] [,3] [,4] [,5] [,6] > [1,] - 2 3 4 5 6 > [2,] 2 - 2 3 4 5 > [3,] 3 2 - 2 3 4 > [4,] 4 3 2 - 2 3 > [5,] 5 4 3 2 - 2 > [6,] 6 5 4 3 2 - >Assuming that - means NA dd <- diag(NA, 6) abs(col(dd) - row(dd)) + 1 + dd or abs(outer(1:6, 1:6, "-")) + 1 + diag(NA,6) or f <- function(x,y) ifelse(x==y, NA, abs(x-y)+1) outer(1:6, 1:6, f)
Is this what you want?
make.odd.matrix<-function(matsize) {
newmat<-matrix(0,nrow=matsize,ncol=matsize)
for(i in 1:matsize) {
for(j in 1:matsize)
newmat[i,j]<-ifelse(i==j,NA,abs(i-j)+1)
}
return(newmat)
}
Jim