我一直在为一款网球游戏开发一个带有滚动球的数据集.我试图找到最后5名球员留在替补席上,但还有另一列球员互换位置.这导致了一个问题,因为玩家可以在最后5行转出,然后再转出,所以我不能简单地使用tail(5).因此,如果球员换回来,那么实际上她并不是替补席上的最后一个.下面是一个数据框,包含最后8个值.

sub_off sub_on time
Alexia Jorja 750
Amy Sophie 770
Jorja Cassandra 800
Lucy Jane 820
Claire Khloe 820
Cassie Alexia 850
Khloe Claire 890
Georgia Khloe 895

请注意,我想挑选留在板凳上的5名球员.他们是乔治亚、卡西、露西、乔哈和艾米.这是因为科勒、克莱尔和亚历克西亚替补在比赛后期复出.

In other words, I want to pick the last 5 values in the sub_off column that don't appear in the rows following for the sub_on column.

df <- data.frame(
  sub_off = c('Alexia', 'Amy', 'Jorja', 'Lucy', 'Claire', 'Cassie', 'Khloe', 'Georgia'),
  sub_on = c('Jorja', 'Sophie', 'Cassandra', 'Jane', 'Khloe', 'Alexia', 'Claire', 'Khloe'),
  time = c(750, 770, 800, 820, 820, 850, 890, 895)
)
df

这是数据框,如果您有任何帮助,我们将不胜感激.谢谢

推荐答案

data.table选项使用sub_offsub_on之间的反连接,其中time更晚:

library(data.table)
setDT(df)
df[!df, on=c("sub_off"="sub_on","time<time"), .(bench=sub_off)]
#     bench
#1:     Amy
#2:   Jorja
#3:    Lucy
#4:  Cassie
#5: Georgia

R相关问答推荐

汇总数据表中两个特定列条目的值

提取第一个下划线和最后一个下划线之间的任何内容,例外情况除外

如何使用ggplot对堆叠条形图进行嵌套排序?

如何写商,水平线,在一个单元格的表在R

Geom_Hline将不会出现,而它以前出现了

查找所有站点的最小值

将多个变量组合成宽格式

使用未知字符数(不受限制的最大长度)的Lookback有什么好的替代方案?

如何使用grepl()在数据帧列表中 Select 特定字符串?

如何用不同长度的向量填充列表?

分隔日期格式为2020年7月1日

如何在不使用SHINY的情况下将下拉滤镜列表添加到ggploy?

我有2011-2022年的年度数据.如何计算最低年份和最高年份之间的差额?

通过不完全重叠的多个柱连接

用LOOCV进行K近邻问题

迭代通过数据帧创建直方图

在R中创建用户定义的相关矩阵

从组中随机 Select 值序列

防止data.table将不同长度的向量列表强制转换为data.table

用于熵平衡的R包ebal:错误消息