【发布时间】:2019-08-19 09:08:24
【问题描述】:
下面是客户 1 购买的产品的表格。
df <- data.table(customer_id = rep(1,3)
, product_1 = letters[1:3]
)
customer_id product_1
1: 1 a
2: 1 b
3: 1 c
假设真实数据集有多个客户,我想为每个客户创建一个排列每个人都购买的产品(无需更换)。在组合学术语中:
nPk
在哪里
n = 每个客户购买的(不同)产品的数量
k = 2
结果:
customer_id product_1 product_2
1: 1 a b
2: 1 a c
3: 1 b c
4: 1 b a
5: 1 c a
6: 1 c b
SQL 连接条件是:
where customer_id = customer_id
and product_1 != product_1
但是,我知道data.table 目前有limited support for non equi joins。因此,是否有其他方法可以实现这一目标?
【问题讨论】:
-
这可以通过非 equi 连接来完成。
标签: r data.table combinatorics