gpt4 book ai didi

r - 使用 R 对链接的唯一 ID 对进行分组

转载 作者:行者123 更新时间:2023-12-04 22:43:21 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Make a group_indices based on several columns

(1 个回答)


2年前关闭。




我正在尝试使用 R 将成对的唯一 ID 链接在一起。在下面的示例中,我有两个 ID(此处为 ID1 和 ID2)表示链接。我正在尝试创建链接的行组。在这个例子中,A 链接到 B,B 链接到 D,D 链接到 E。因为这些都是相连的,我想把它们组合在一起。接下来,还有 X 链接到 Y 和 Z。因为这两个也是连接的,所以我也想将它们分配给一个组。我如何使用 R 解决这个问题?

谢谢!

示例数据:

ID1 ID2
A B
B D
D E
X Y
X Z

DPUT R 表示
structure(list(id1 = structure(c(1L, 2L, 3L, 4L, 4L), .Label = c("A", "B", "D", "X"), class = "factor"), id2 = structure(1:5,.Label = c("B", "D", "E", "Y", "Z"), class = "factor")), .Names = c("id1", "id2"), row.names = c(NA, -5L), class = "data.frame")

需要的输出:
ID1 ID2 GROUP
A B 1
B D 1
D E 1
X Y 2
X Z 2

最佳答案

根据@Frank 在评论中提到的,您可以使用 igraph :

library(igraph)
idf <- graph.data.frame(df)
clusters(idf)$membership

这使:
A B D X E Y Z 
1 1 1 2 1 2 2

如果您想将结果分配回 df 的行:
merge(df, stack(clusters(idf)$membership), by.x = "id1", by.y = "ind", all.x = TRUE)

关于r - 使用 R 对链接的唯一 ID 对进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38663170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com