【发布时间】:2021-09-26 22:39:34
【问题描述】:
我有一些足球数据(2020/2021 Serie A),我想计算每支球队在过去 n 天内的比赛次数(假设在过去 30 天内进行简化)。因此,条件是团队、比赛日期(严格小于)和同一天 - 30(大于或等于)。
我想知道使用 data.table(单独)的最佳方法是什么,更重要的是,代码背后的逻辑。我会在团队和日期上循环,但我认为这很麻烦,而且我确信有一种方法可以在一行中完成。
下面给出了一个示例,其结果是我所期望的(日期和日期可能会产生误导,因为有些比赛被推迟了,但这并不重要。数据是按日期分类的)。非常感谢。
| Code | Team | Date | Day | Date - 30d | Games played over the last 30 days |
|---|---|---|---|---|---|
| TORATA | Atalanta | 2020-09-26 | 2 | 2020-08-27 | NA |
| LAZATA | Atalanta | 2020-09-30 | 1 | 2020-08-31 | 1 |
| ATACAG | Atalanta | 2020-10-04 | 3 | 2020-09-04 | 2 |
| NAPATA | Atalanta | 2020-10-17 | 4 | 2020-09-17 | 3 |
| ATASAM | Atalanta | 2020-10-24 | 5 | 2020-09-24 | 4 |
| CROATA | Atalanta | 2020-10-31 | 6 | 2020-10-01 | 3 |
| ATAINT | Atalanta | 2020-11-08 | 7 | 2020-10-09 | 3 |
【问题讨论】:
-
不清楚如何计算最后一列。
-
这是在 Date-30d 和 Date 之间发生的游戏数的计数器。基本上,它计算行数。
标签: r date data.table conditional-statements cumulative-sum