有没有一种方法可以将图形网络转换为R中的关系数据集?

时间:2018-07-31 14:06:46

标签: r networking graph relational

我有一个包含链接节点的数据集,我试图将其转换为简单的关系表。结构是这样的:

Key1 Key2
A    A
A    B
A    C
B    A
B    B
B    C
C    A
C    B
C    C
D    D
D    E
E    D
E    E
F    F

在一天结束时,我试图找出R中是否有一种方法(循环之外,考虑到集合的大小,这太慢了),无法在新的条件下获取所有可能的相关值唯一的主ID。最终的数据集将是这样的:

Master   Key
1        A
1        B
1        C
2        D
2        E
3        F

我找不到关于该主题的任何内容,因为如果没有适当的术语,我可能会问这个问题。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

这只是获取图形的连接组件。

使用数据:

Dat = read.table(text="Key1 Key2
A    A
A    B
A    C
B    A
B    B
B    C
C    A
C    B
C    C
D    D
D    E
E    D
E    E
F    F", 
header=TRUE)

我们将边缘变成图形并获得连接的组件。

library(igraph)
g = graph_from_edgelist(as.matrix(Dat), directed=FALSE)
components(g)$membership
A B C D E F 
1 1 1 2 2 3 

请注意,components(g)$membership是带有命名组件的向量。可以使用names(components(g)$membership)

访问A,B,C,D,E,F