从 MYSQL、PHP 或 R 中的 mysql 数据库制作共现矩阵


Making a co-occurrence matrix from mysql database in MYSQL, PHP or R

我有一个看起来像这样的 mysql 表:

id       uid
1         a
1         b
1         c
1         d
2         a
2         b
2         c
2         e
3         b
3         c 
3         e
3         f

我想按 id 分组并制作一个这样的共现矩阵:

a,b,2   -because a and b appear together in 2 id-groups (in 1 and 2)
a,c,2   -because a and c appear together in 2 id-groups (in 1 and 2)
b,c,3   -because b and c appear together in 3 id groups (in 1, 2 and 3)

我愿意接受MYSQL查询中的建议,或者使用R或PHP。

组 a 自加入:

SELECT   a.uid a, b.uid b, COUNT(*) cnt
FROM     my_table a JOIN my_table b ON b.id = a.id AND b.uid > a.uid
GROUP BY a.uid, b.uid

在sqlfiddle上看到它。