我有一个如下所示的数据集:
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是共同的?
答案 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")