R语言中的高效匹配算法

R语言中的高效匹配算法,r,algorithm,match,R,Algorithm,Match,我有一个包含多列的数据集,包括ID、键1、方向、日期和大小。我正在尝试编写一个算法,为我可以匹配方向相反、日期相等、部分大小不匹配的组创建GroupID,但如果大小相等,我可以在同一方向上取两行进行求和以匹配。我还试图最大限度地扩大规模。作为下面的一个例子,我将以groupid1结束,如下所示 |ID |direction |size |key1 |date |GroupID -----------------------------------------------------

我有一个包含多列的数据集,包括ID、键1、方向、日期和大小。我正在尝试编写一个算法,为我可以匹配方向相反、日期相等、部分大小不匹配的组创建GroupID,但如果大小相等,我可以在同一方向上取两行进行求和以匹配。我还试图最大限度地扩大规模。作为下面的一个例子,我将以groupid1结束,如下所示

|ID |direction  |size   |key1   |date   |GroupID
--------------------------------------------------------
| 12345 |1  |100    |1.1    |01/01/2016 |1
| 22356 |0  |50     |1.1    |01/01/2016 |1
| 54686 |0  |50     |1.1    |01/01/2016 |1
| 78468 |1  |50     |5.2    |01/01/2016 |NA
人们对编写为匹配项创建GroupID的有效方法有什么想法吗

第二,如果我能够进行部分匹配(更简单的问题),那么最快的方法是什么

|ID |direction  |size   |key1   |date   |GroupID
--------------------------------------------------------
| 12345 |1  |100    |1.1    |02/01/2016 |2
| 22356 |0  |50     |1.1    |02/01/2016 |2
| 54686 |0  |25     |1.1    |02/01/2016 |2

这可能需要一个比较全面的答案。你试过什么?您可能有特定的问题吗?您好,请包含您的数据集的
dput
,以便我们更容易在R会话中重新创建