采用链接ID的这个简单数据框:
test <- data.frame(id1=c(10,10,1,1,24,8),id2=c(1,36,24,45,300,11))
> test
id1 id2
1 10 1
2 10 36
3 1 24
4 1 45
5 24 300
6 8 11
Run Code Online (Sandbox Code Playgroud)
我现在想把所有链接的ID组合在一起.通过"链接",我的意思是遵循链接链,以便将一个组中的所有ID标记在一起.一种分支结构.即:
Group 1
10 --> 1, 1 --> (24,45)
24 --> 300
300 --> NULL
45 --> NULL
10 --> 36, 36 --> NULL,
Final group members: 10,1,24,36,45,300
Group 2
8 --> 11
11 --> NULL
Final group members: 8,11
Run Code Online (Sandbox Code Playgroud)
现在我大致知道我想要的逻辑,但不知道我将如何优雅地实现它.我正在考虑递归使用match或%in%删除每个分支,但这次真的很难过.
我追逐的最终结果是:
result <- data.frame(group=c(1,1,1,1,1,1,2,2),id=c(10,1,24,36,45,300,8,11))
> result
group id
1 …Run Code Online (Sandbox Code Playgroud)