当前位置: 首页 > 知识库问答 >
问题:

Tidyverse:group_by、arrange和lag跨列

郑锋
2023-03-14

我正在研究一个体育项目的投影模型,我需要了解某支球队最近的比赛:

    < li >他们的下一个对手是谁?(已解决) < li >他们的下一个对手是什么时候?

可以在下面使用的reprex。以第1行为例,我需要理解“a”的下一个对手“e”的最近一场比赛是game_id_3。

game_id_ <- c(1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6)

game_date_ <- c(rep("2021-01-29", 6), rep("2021-01-30", 6))

team_ <- c("a", "b", "c", "d", "e", "f", "b", "c", "d", "f", "e", "a")

opp_ <- c("b", "a", "d", "c", "f", "e", "c", "b", "f", "d", "a", "e")

df <- data.frame(game_id_, game_date_, team_, opp_)

#Next opponent
df <- df %>% 
  arrange(game_date_, game_id_, team_) %>% 
  group_by(team_) %>% 
  mutate(next_opp = lead(opp_, n = 1L))

如果我能提供更多细节,请告诉我。

共有1个答案

鲁烨
2023-03-14

我们可以使用匹配返回对应的game_id_

library(dplyr)
df %>%
   arrange(game_date_, game_id_, team_) %>%
   group_by(team_) %>%
   mutate(next_opp = lead(opp_, n = 1L)) %>%
   ungroup %>%
   mutate(last_time = game_id_[match(next_opp, opp_)])
 类似资料:
  • 问题内容: 我正在尝试使用SQL Server 2012 LAG函数编写查询,以从我的[Order]表中检索数据,其中行与上一行之间的日期时间差小于等于2分钟。 我期望的结果是 但我看到了 最后一行不应该返回。这是我尝试过的:SQL Fiddle 任何有想法的人吗? 问题答案: 好吧,首先,我添加了一行以向您显示其他人的答案不起作用的地方,但他们现在将其删除了。 现在针对我查询中的逻辑。您说过您希

  • 问题内容: 有没有办法在JTable中实现html表格之类的行跨度和colspan。 问题答案: 这是一个非常古老的例子。我不知道它是否仍然有效: http://www.java2s.com/Code/Java/Swing- Components/MultiSpanCellTableExample.htm

  • 问题内容: 有什么方法可以强制PostgreSQL和函数使用 同一分区中的 值而不是前行的值? 预期结果将是: 如果是在给定等级中具有 不同 值的情况,则并且可以是这些值中的任何一个。例如: 可以等于1994、1995或1996 问题答案: 您应该在数据集上使用和函数,每对减少到一行:

  • 将< code>dplyr::arrange与< code>gtools::mixedorder一起使用时,我注意到了一个意外的结果。 考虑: 在test2中,第1列排序: 而在test3中,列的排序与使用gtools:mixedorder时预期的一样 为什么当我组合排列和混合工具时会发生这种情况?这是一个错误吗? 非常感谢,安妮克

  • 问题内容: 首先,我是熊猫的新手,但我已经爱上了它。我正在尝试实现与Oracle的滞后功能等效的功能。 假设您有以下DataFrame: 如果这是一个oracle数据库,而我想创建一个按“ Group”列分组并按Date排序的滞后函数,则可以轻松使用此函数: 这将产生下表: 在大熊猫中,我可以将日期设置为索引并使用shift方法: 唯一的问题是,这不会按列分组。即使将日期和组这两列设置为索引,我仍

  • 问题内容: 我正在寻找Elasticsearch中的SQL Server LAG / LEAD函数模拟。 假设我有通过特定条件找到的结果集中的文档列表。结果集也以某种顺序排序。 我知道该结果集中一个文档的ID,因此我需要在同一结果集中查找下一个和/或上一个文档。 SQL Server 2012及更高版本具有获取记录集中下一行/上一行的功能。所以我想知道elasticsearch中是否有这样的功能。