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