gpt4 book ai didi

r - 两组差异,数据处理

转载 作者:行者123 更新时间:2023-12-04 10:44:28 28 4
gpt4 key购买 nike

我有一个数据处理问题,我想计算两支球队在不同比赛中的进球数差异。数据如下所示:

    matchId teamId   eventSec
1 2799331 6718 443.55984
2 2799331 6726 1152.62584
3 2799331 6718 2113.82370
4 2799331 6718 2066.28793
5 2799332 6710 1001.35775
6 2799332 6721 2469.32876
7 2799333 6734 744.35563

所以其中一条线代表球队进球,matchId 代表比赛,teamId 代表比赛中的球队,eventSec 代表进球的时间。我想要完成的是每行显示分数差异的变量,因此此示例数据中的第一行应该有一个目标差 1,第二行应该有一个目标差异 0,第三行一个目标差异 1等。

我想将此应用到具有许多不同匹配和团队 ID 的大型数据集,因此我需要一个非常通用的解决方案来解决这个问题。我尝试了不同的 dplyr 解决方案,但被卡住了一百万次,我真的很需要帮助。

非常感谢!

最佳答案

希望我正确地遵循了您的逻辑,请告诉我。

library(tidyverse)

df %>%
group_by(matchId) %>%
mutate(point = if_else(teamId == first(teamId), 1, -1),
goal_diff = cumsum(point))

另外,如果你想得到每场比赛的得分,你可以添加:

group_by(matchId, teamId) %>%
summarise(score = sum(abs(point)))

输出

# A tibble: 7 x 5
# Groups: matchId [3]
matchId teamId eventSec point goal_diff
<int> <int> <dbl> <dbl> <dbl>
1 2799331 6718 444. 1 1
2 2799331 6726 1153. -1 0
3 2799331 6718 2114. 1 1
4 2799331 6718 2066. 1 2
5 2799332 6710 1001. 1 1
6 2799332 6721 2469. -1 0
7 2799333 6734 744. 1 1

关于r - 两组差异,数据处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60230601/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com