有没有办法将图形网络转换为 R 中的关系数据集?
Is there a way to convert a graph network to a relational dataset in R?
我有一个由链接节点组成的数据集,我正在尝试将其转换为简单的关系 table。结构是这样的:
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
我有一个由链接节点组成的数据集,我正在尝试将其转换为简单的关系 table。结构是这样的:
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)