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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有没有办法将图形网络转换为R中的关系数据集?相关的知识,希望对你有一定的参考价值。

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

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

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

任何帮助表示赞赏!

答案

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

使用您的数据:

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

以上是关于有没有办法将图形网络转换为R中的关系数据集?的主要内容,如果未能解决你的问题,请参考以下文章

如何将以网格间隔收集的点数据转换为 r 中的地理参考数据集?

将特定数量的行转换为 R 中的列,并对大型数据集重复该过程

将 NetCDF (.nc) 转换为 GEOTIFF

如何创建图神经网络数据集? (pytorch 几何)

如何使用 R 为多路复用网络中的边缘着色

对于大型数据集,如何在 R 中使用先验算法?