频率关系矩阵

时间:2017-10-26 10:19:26

标签: r excel

我有一个如下所示的数据集:

col1  |  col2    |  col3
A     |  yellow  |  ID1
B     |  yellow  |  ID1
A     |  red     |  ID2
C     |  blue    |  ID2

我喜欢的是一个矩阵,我可以看到A和B,A和C之间共有多少个ID,等等。

   |  A   |  B   |  C
A  |  --  |  1   |  1
B  |  1   |  --  |  0
C  |  1   |  0   |  --

像上面这样的东西。 我认为这个结构的名称是合适的,但我找不到它。 我正在寻找使用Excel(首选)或R的解决方案。 最简单的方法是什么?

以下问题是我如何知道哪些ID是共同的?

1 个答案:

答案 0 :(得分:4)

你可以这样做:

m <- df[,-2]
m <- table(m)
m <- m %*% t(m)
diag(m) <- NA
#   col1
# col1 A  B  C
#   A NA  1  1
#   B  1 NA  0
#   C  1  0 NA

搜索的关键术语可能是关联矩阵,二分网络/从属网络,双模网络到单模网络,以及邻接矩阵。

使用的数据:

df<-read.table(header=T,sep="|",text="col1|col2|col3
A|yellow|ID1
B|yellow|ID1
A|red|ID2
C|blue|ID2")