Я новичок в R (и dplyr), и в настоящее время я работаю с некоторыми сезонными футбольными данными и нуждаюсь в некоторой помощи.В настоящее время, если игрок переходит в другой клуб в той же лиге, строка данных и все показатели просто дублируются, но с новым team_id.Однако, если игрок переходит в другую лигу, то показатели делятся.
Для согласованности мне необходимо решить эту проблему, что означает, что я должен:
Группировать по player_id, где comp_id не соответствует
(правила футболадиктовать, что вы можете играть не более 2-х клубов в сезоне, так что это сводит на нет дальнейшие осложнения, и поэтому это простое правило разрешает все)
иными словами, если есть дубликаты, суммируйте все строки, но только еслиcomp_id отличается
Я пытался сделать это в dplyr и надеялся, что будет какой-то способ написать это, например:
football_data %>%
group_by(player_id, !comp_id)
, но это не сработает и совершенно правильно, так.
Мой другой вариант - создать дополнительный столбец на основе составного ключа (player_id, comp_id) и group_by player_id только там, где счетчик составного ключа = 1, но даже тогда я пытаюсь написать это с помощью dplyr.,
Любые предложения будут приветствоваться.
Редактировать:
Существует около ста метрик, поэтому я упросту, как показано ниже:
player_id player_name comp, team, metric1, metric2, metric3 .....
1 Lacazette Bund Dort 20 30 20
1 Lacazette EPL Ars 10 15 15
2 Arnautovic EPL Stoke 30 40 30
2 Arnautovic EPL W. Ham 30 40 30
таким образом, в этом примере метрики данных разделяются, когда игрок перемещает лиги (Lacazette), но не, если передача находится в той же лиге (Arnautovic).
Так что для согласованности мне нужно суммировать метрики для первогоигрок, но не для второго игрока
, что приводит к выводу:
player_id player_name comp, team, metric1, metric2, metric3 .....
1 Lacazette Bund Dort 30 45 35
1 Lacazette EPL Ars 30 45 35
2 Arnautovic EPL Stoke 30 40 30
2 Arnautovic EPL W. Ham 30 40 30