我有一個包含足球比賽的資料框,其中包含以下內容:
- 比賽日(日期)
- 主隊
- 客隊
我想計算自一支球隊上次比賽以來已經過去了多長時間。這意味著我必須找到Team的最新外觀并獲得日期,即 Matchday。
我真的不知道該怎么做,除了可能將結構轉換為長格式。但是對于基于團隊的匹配和搶占比賽日,我迷路了。
當前結構:
| 比賽日 | 團隊 | Home_Away |
|---|---|---|
| 2022-08-05 | 阿森納足球俱樂部 | 離開 |
| 2022-08-05 | 水晶皇宮 | 家 |
| ... | ... | ... |
| 2022-08-13 | 阿森納足球俱樂部 | 家 |
| 2022-08-13 | 萊斯特城 | 離開 |
所以我想要一個基本上指示休息日的列:
| 比賽日 | 團隊 | Home_Away | 休息日 |
|---|---|---|---|
| 2022-08-05 | 阿森納足球俱樂部 | 離開 | 不適用 |
| 2022-08-05 | 水晶皇宮 | 家 | 不適用 |
| ... | ... | ... | ... |
| 2022-08-07 | 萊斯特城 | 家 | 不適用 |
| ... | ... | ... | ... |
| 2022-08-13 | 阿森納足球俱樂部 | 家 | 8 |
| 2022-08-13 | 萊斯特城 | 離開 | 6 |
uj5u.com熱心網友回復:
您需要按團隊和日期(按升序排列的日期)對資料框進行排序。然后,您在 Team 中創建一個包含日期滯后值的列。例如使用 dplyr:
library(dplyr)
data <-
data %>%
group_by(Team) %>%
mutate(rest_days = Matchday - dplyr::lag(Matchday, n = 1, default = NA))
我無法檢查這是否完全以這種方式作業,但這個想法(排序、分組然后滯后)應該有效..
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/510764.html
標籤:r数据框日期
