gpt4 book ai didi

r - 从数据框中的产品列表创建配对组合

转载 作者:行者123 更新时间:2023-12-04 12:02:11 26 4
gpt4 key购买 nike

我得到了他们在特定时间段内使用的用户和产品的数据:

dframe <- data.frame(id = c(1234,1234, rep(3456, 4)), 
product = c("Apple", "Pear", "Apple", "Pear", "Grapes", "Kiwi"))

id product
1234 Apple
1234 Pear
3456 Apple
3456 Pear
3456 Grapes
3456 Kiwi

我正在寻找一种方法来为每位用户创建独特的产品对组合(其中 x-y 对等于 y-x 对)。解决方案如下所示:

solution
id product1 product2
1234 Apple Pear
3456 Apple Pear
3456 Apple Grapes
3456 Apple Kiwi
3456 Pear Grapes
3456 Pear Kiwi
3456 Grapes Kiwi

本质上,如果有意义的话,我想在 dplyr 的 group_by(id) 之后应用 combn(product,2) 的等价物。有什么想法可以解决这个问题吗?

非常感谢您的帮助!

最佳答案

这是一个使用 data.table 中的 CJ 的选项

library(data.table)
setDT(dframe)[, product := as.character(product)
][, CJ(product1= product, product2 = product, unique = TRUE),
by = id][product1 != product2
][!duplicated(data.table(id, pmin(product1, product2), pmax(product1, product2)))]

关于r - 从数据框中的产品列表创建配对组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44136332/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com