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
我正在研究 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