R SQL 创建一个没有重复的成对数据集

R SQL create a pairwise dataset without repetitions

我正在研究 R 和 SQL(包 sqldf),数据集如下所示:

View(dataset)

key1    key2    id    ...
01/01   XXX     A     ...
01/01   XXX     B     ...
01/01   YYY     C     ...
01/01   YYY     D     ...
02/01   XXX     A     ...
02/01   XXX     B     ...
02/01   XXX     C     ...

我想为由 key1 和 key2 标识的每个组创建一个成对数据集,如下所示:

key1    key2    id_1    id_2    
01/01   XXX     A       B  
01/01   YYY     C       D
02/01   XXX     A       B
02/01   XXX     A       C
02/01   XXX     C       B

我用过

sqldf(c('select a.key1, a.key2, a.id as id_1, 
                  b.id as id_2 
                  from dataset a
                  inner join dataset b on a.key1=b.key2 and a.key2=b.key2  and a.id!=b.id'))

问题是通过这个查询我获得了

key1    key2    id_1    id_2    
01/01   XXX     A       B
01/01   XXX     B       A    
01/01   YYY     C       D
01/01   YYY     D       C
02/01   XXX     A       B
02/01   XXX     B       A
02/01   XXX     A       C
02/01   XXX     C       A
02/01   XXX     C       B
02/01   XXX     B       C

我想避免重复,因为我想做一些比较,哪个 id 放在 id_1 列和 id_2.[=15= 列中并不重要]

非常感谢!

将连接条件从 a.id != b.id 更改为 a.id < b.id