[R] A co-occurrence matrix

Liaw, Andy andy_liaw at merck.com
Tue Nov 11 13:41:18 CET 2003


Does the following help?

> group <- c(1, 2, 1, 1, 3)
> outer(group, group, "==")
      [,1]  [,2]  [,3]  [,4]  [,5]
[1,]  TRUE FALSE  TRUE  TRUE FALSE
[2,] FALSE  TRUE FALSE FALSE FALSE
[3,]  TRUE FALSE  TRUE  TRUE FALSE
[4,]  TRUE FALSE  TRUE  TRUE FALSE
[5,] FALSE FALSE FALSE FALSE  TRUE
> outer(group, group, "==") + 0  # Turn it into a numeric matrix.
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    0    1    1    0
[2,]    0    1    0    0    0
[3,]    1    0    1    1    0
[4,]    1    0    1    1    0
[5,]    0    0    0    0    1


Andy

> -----Original Message-----
> From: Alexey Shipunov [mailto:a.shipunov at rbgkew.org.uk] 
> Sent: Tuesday, November 11, 2003 5:50 AM
> To: R-help at stat.math.ethz.ch
> Subject: [R] A co-occurrence matrix
> 
> 
> Dear R experts,
> 
> I have a matrix (from some sort of 
> classification) like this:
> 
>       object  group
>  [1,] 1       1
>  [2,] 2       2
>  [3,] 3       1
>  [4,] 4       1
>  [5,] 5       3
> 
> And I need something like this:
> 
>       [,1] [,2] [,3] [,4] [,5]
>  [1,] 1    0    1    1    0
>  [2,] 0    1    0    0    0
>  [3,] 1    0    1    1    0
>  [4,] 1    0    1    1    0
>  [5,] 0    0    0    0    1
> 
> where all zeros mean that these objects are not 
> in same group, and vice versa.
> 
> Is there a relatively simple way to construct co-
> uccurence matrices of type shown above?
> 
> Any help would be appreciated,
> 
> 
> =================================
> Dr. Alexey B. Shipunov
> Section of Molecular Systematics
> Jodrell Laboratory
> Royal Botanic Gardens, Kew,
> Richmond, Surrey, TW9 3DS, U.K.
> e-mail: a.shipunov at rbgkew.org.uk
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list 
> https://www.stat.math.ethz.ch/mailman/listinfo> /r-help
>




More information about the R-help mailing list