这是一个看似简单的问题,但我无法想出答案。以下是最简单的情况:
考虑以下矩阵:
我想使用这个矩阵来识别朋友群组,其中1表示友谊。群组是基于群组内的任何连接形成的,而不仅仅是一度关系(也就是说,1是2的朋友,2是3的朋友但不是1的朋友,但他们都在同一个群组中)。如果一行只与自身相关,则它是自己的群组。我想创建一个数据框,指示这些群组的成员资格(使用行号作为ID)(数字作为ID也可以,我只是用字母避免混淆)。对于这个例子,如下所示:
考虑以下矩阵:
friendMatrix <- matrix(c(1,1,0,0,0,
1,1,1,0,0,
0,1,1,0,0,
0,0,0,1,1,
0,0,0,1,1),nrow=5)
它的外观如下所示
[,1] [,2] [,3] [,4] [,5]
[1,] 1 1 0 0 0
[2,] 1 1 1 0 0
[3,] 0 1 1 0 0
[4,] 0 0 0 1 1
[5,] 0 0 0 1 1
我想使用这个矩阵来识别朋友群组,其中1表示友谊。群组是基于群组内的任何连接形成的,而不仅仅是一度关系(也就是说,1是2的朋友,2是3的朋友但不是1的朋友,但他们都在同一个群组中)。如果一行只与自身相关,则它是自己的群组。我想创建一个数据框,指示这些群组的成员资格(使用行号作为ID)(数字作为ID也可以,我只是用字母避免混淆)。对于这个例子,如下所示:
row group
1 A
2 A
3 A
4 B
5 B
我考虑过一些聚类算法,但是在这里似乎有点杀鸡焉用牛刀,因为这些组已经很明确定义并且显而易见。