我有一个包含链接节点的数据集,我试图将其转换为简单的关系表。结构是这样的:
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
我找不到关于该主题的任何内容,因为如果没有适当的术语,我可能会问这个问题。
感谢您的帮助!
答案 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)