2017-02-14 76 views
1

我对数据集上R和SQL(包sqldf)工作类似以下的成对数据集:řSQL创建没有重复

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 

我想避免重复,因为我想要做一些comparaisons并不要紧哪个ID被放入列ID_1并且在ID_2。

非常感谢!

回答

3

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