Из моего набора данных я пытаюсь составить пары на основе рейтинга.мои данные выглядят так:
ID grp rank
1 grp1 1
1 grp2 1
1 grp3 2
2 grp1 1
2 grp2 2
2 grp2 2
2 grp2 2
2 grp3 2
2 grp1 3
Вывод, к которому я стремлюсь, следующий: для каждого идентификатора
- , если rank = 1, тогда grp в источнике и пункте назначения одинаковы = grp
- Если ранг отличается от 1, то
- source = взять группу из предыдущего ранга
- destination = взять группу из текущего ранга Если для одного ранга существует более одной группы, тонеобходимо создать дополнительную строку, чтобы каждая пара была представлена.
В таком случае это выглядит следующим образом:
ID rank source destination
1 1 grp1 grp1
1 1 grp2 grp2
1 2 grp1 grp3
1 2 grp2 grp3
2 1 grp1 grp1
2 2 grp1 grp2
2 2 grp1 grp2
2 2 grp1 grp2
2 2 grp1 grp3
2 3 grp2 grp1
2 3 grp3 grp1
Я начал с цикла forи заявления if_else, но я застрял.Любая помощь приветствуется!спасибо заранее.