有没有办法将图形网络转换为R中的关系数据集?

问题描述 投票:1回答:1

我有一个由链接节点组成的数据集,我正在尝试将其转换为简单的关系表。结构是这样的:

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

我找不到关于这个主题的任何内容,因为我可能在没有正确术语的情况下提出问题。

任何帮助表示赞赏!

r networking graph relational
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.