我正在尝试在 R 中创建一个唯一用户的交叉产品矩阵。我在 SO 上搜索了它,但找不到我想要的东西。任何帮助表示赞赏。我有一个大数据框(超过一百万),并显示了一个示例:
df <- data.frame(Products=c('Product a', 'Product b', 'Product a',
'Product c', 'Product b', 'Product c'),
Users=c('user1', 'user1', 'user2', 'user1',
'user2','user3'))
df 的输出是:
Products Users
1 Product a user1
2 Product b user1
3 Product a user2
4 Product c user1
5 Product b user2
6 Product c user3
我想看到两个矩阵:第一个将显示拥有任一产品(或)的唯一用户的数量 - 所以输出将类似于:
Product a Product b Product c
Product a 2 3
Product b 2 3
Product c 3 3
第二个矩阵将是拥有两种产品的唯一用户数(AND):
Product a Product b Product c
Product a 2 1
Product b 2 1
Product c 1 1
任何帮助表示赞赏。
谢谢
更新:
这里更清楚:产品 a 由 User1 和 User2 使用。产品 b 由 User1 和 User2 使用,产品 c 由 User1 和 User3 使用。所以在第一个矩阵中,产品 a 和产品 b 将是 2,因为有 2 个唯一用户。同样,产品 a 和产品 c 将为 3。在第二个矩阵中,它们将是 2 和 1,因为我想要交集。谢谢