определить группы связанных эпизодов, которые соединяются вместе

Возьмите этот простой фрейм данных связанных идентификаторов:

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

Теперь я хочу сгруппировать все идентификаторы, которые связаны. Под «ссылкой» я подразумеваю переход по цепочке ссылок, чтобы все идентификаторы в одной группе помечены вместе. Этакая ветвящаяся структура. то есть:

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

Теперь я примерно знаю логику, которую хотел бы, но не знаю, как бы я элегантно ее реализовал. Я думаю о рекурсивном использовании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     1  10
2     1   1
3     1  24
4     1  36
5     1  45
6     1 300
7     2   8
8     2  11

Ответы на вопрос(3)

Ваш ответ на вопрос