【发布时间】:2018-11-17 20:28:31
【问题描述】:
我是 R(和 dplyr)的新手,我目前正在处理一些季节性足球数据,需要一些帮助。目前,如果一名球员转会到同一联赛的另一家具乐部,则数据行和所有指标都会简单地复制,但会使用新的 team_id。但是,如果球员转会到另一个联赛,那么指标就会分开。
为了保持一致性,我需要解决这个问题,这意味着我必须:
在 comp_id 不匹配的地方按 player_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
【问题讨论】:
-
您还应该提供输入数据和预期输出