【发布时间】:2020-08-04 16:55:48
【问题描述】:
所以我有一个这种形式的数据框:
ID Var1 Var2
1 1 1
1 2 2
1 3 3
1 4 2
1 5 2
2 1 4
2 2 8
2 3 10
2 4 10
2 5 7
我想按组过滤 Var1 的最大值,条件是不满足 Var2 的最大值。这将是一个新数据帧的一部分,每个 ID 只包含一行,所以结果应该是这样的:
ID Var1
1 2
2 2
所以函数应该过滤数据帧的最大值,但只考虑 Var2 达到最大值之前的行中的值。不应包含包含最大值本身的行,因此不应包含最大值之后的行。
我尝试使用while 循环构建一些东西,但没有成功。如果解决方案不使用data.table
提前致谢
【问题讨论】:
-
如果var1的最大值在第一行而var2的最大值在第三行怎么办?你还会选择第 f2 行还是只选择第一行?
-
@Onyambu 如果 Var2 在第 3 行(关于一个组)中具有最大值,则该组中 Var1 的前两行将被考虑用于过滤。因此,在您的情况下,新的数据框/变量应该报告第一行中 Var1 的值
标签: r filter max aggregate plyr