On Thu, Jun 14, 2012 at 02:24:20PM -0400, cowboy wrote:
> thank you, Petr.
> This is exactly what I'm looking for in my post.
> An related question can be how to get an arbitrary weight, say if row1
> and row 2 have 1 common value 1, then assign a weight 10, if row 1 and
> row 2 have 2 common value 1, then assign a weight 12. I'm not so sure
> how to expand your method.
Hi.
The weight matrix may be transformed. Try the following.
# modified example to have also intersection 2
a <- rbind(
c(0, 1, 1, 1),
c(1, 0, 1, 1),
c(0, 0, 0, 1))
w <- a %*% t(a)
diag(w) <- 0
w
[,1] [,2] [,3]
[1,] 0 2 1
[2,] 2 0 1
[3,] 1 1 0
trans <- c(1, 10, 12)
w[, ] <- trans[w + 1]
w
[,1] [,2] [,3]
[1,] 1 12 10
[2,] 12 1 10
[3,] 10 10 1
Hope this helps.
Petr Savicky.
______________________________________________
[email protected] 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.