[R] help with one matrix

Gabor Grothendieck
Sun, 11 Sep 2005 06:23:19 -0000

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)