我正在分析足球比賽。我想知道哪些球隊后來居上以平局甚至贏得比賽最多。
我有三列:
- 游戲ID
- 團隊
- 特定球隊在比賽中得分的分鐘數
這里我舉個例子
GID <- c(1,1,1,1,2,2,2,2,3,3,3,3,3)
Teams <- c("Peru","Peru","Brazil","Brazil", "Chile", "Argentina","Argentina","Argentina","Colombia", "Ecuador", "Ecuador", "Colombia",
"Colombia")
Min_scores <- c(6,10,50,90,36,56,60,70,10,15,20,46,89)
df_example <- data.frame(GID,Teams,Min_scores)
df_example
在這種情況下,有三場比賽。秘魯對巴西,智利對阿根廷,哥倫比亞對厄瓜多爾。
首場比賽秘魯2-0取勝,巴西強勢反擊,最終戰成平局。第二場,阿根廷0-1輸球,3-1取勝。 第三個例子,哥倫比亞開局1-0取勝,厄瓜多爾2-1逆轉,哥倫比亞再次扳平比分。以 3-2 獲勝。
在這種情況下,我想計算輸的球隊開始獲勝或平局的分數發生這些變化的次數。這可能是所謂的后來居上的勝利或平局。
我一直在思考這個問題,但沒有提出有效的解決方案。我認為回圈可能是一個解決方案,但有很多匹配項,我有點擔心它可能會很慢。
非常感謝您的幫助。
uj5u.com熱心網友回復:
你可以試試
library(dplyr)
df_example %>%
group_by(GID) %>%
arrange(GID, Min_scores) %>%
mutate(key1 = ifelse(Teams == unique(Teams)[1], 1, -1)) %>%
mutate(key2 = cumsum(key1)) %>%
summarise(behind_win_or_draw = sum(key2 == 0))
GID behind_win_or_draw
<dbl> <int>
1 1 1
2 2 1
3 3 2
編輯。
df_example %>%
group_by(GID) %>%
arrange(GID, Min_scores) %>%
mutate(key1 = ifelse(Teams == unique(Teams)[1], 1, -1)) %>%
mutate(key2 = cumsum(key1)) %>%
filter(key2 == 0) %>%
group_by(GID, Teams) %>%
summarise(n = sum(key2 == 0))
GID Teams n
<dbl> <chr> <int>
1 1 Brazil 1
2 2 Argentina 1
3 3 Colombia 1
4 3 Ecuador 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/347916.html
